Date 클래스

Download Report

Transcript Date 클래스

Chapter13 : 유틸리티 패키지와
컬렉션
13.1 유틸리티 클래스 개요
13.2 Random 클래스
13.3 Date 클래스
13.4 Calendar 클래스
13.5 GregorianCalendar 클래스
13.6 StringTokenizer 클래스
13.7 컬렉션 프레임워크(Collection Framework)
13.8 리스트(List) 관련 클래스
13.9 셋(Set) 관련 클래스
13.10 맵(Map) 관련 클래스
13.1 유틸리티 클래스 개요
AbstractCollection
AbstractList
AbstractSequentialList
ArrayList
Vector
Stack
AbstractSet
HashSet
TreeSet
object
AbstractMap
HashMap
TreeMap
WeakHashMap
Arrays
BitSet
Calendar
GregorianCalendar
Collections
Date
Dictionary
Hashtable
Properties
EventObject
Locale
Observable
Random
StringTokenizer
TimeZone
SimpleTimeZone
LinkedList
13.2 Random 클래스
• 난수 발생 기능 제공
• double, float, int, long 등 다양한 형태의 난수 제공
• 생성자
Random()
// 현재의 시간을 초기값으로 하는 난수 발생
Random(long seed) // seed 값을 초기값으로 하는 난수 발생
Random 클래스
• Random 클래스의 주요 메소드
void nextBytes(byte buffer[])
float nextFloat()
int nextInt()
long getLong()
double nextDouble()
double nextGaussian()
void setSeed(long newseed)
buffer를 난수로 채운다
float 형의 난수를 반환
int 형의 난수를 반환
long 형의 난수를 반환
double 형의 난수를 반환
Gaussian 형의 난수를 double 값으로 반환
난수 발생기의 seed 값을
newseed 값으로 설정
13.3 Date 클래스
• 날짜와 시간에 관한 정보를 제공하는 클래스
• 생성자
Date()
Date(long msec)
Date(int year, int month, int day)
Date(int year, int month, int day, int hours, int minutes)
Date(int year, int month, int day, int hours, int minutes, int seconds)
Date() : 현재의 날짜와 시간을 가진 객체를 생성
Date(long msec) : GMT(Greenwich Mean Time) 시간(1970년 1월 1일
자정)에서
msec 밀리초가 경과한 시간을 가진 객체를 생성
나머지 생성자들은 년, 월, 일 등을 지정하여 Date 객체를 생성
Date 클래스
•
Date 클래스의 주요 메소드
boolean after(Date d)
boolean before(Date d)
boolean equals(Date d)
long getTime()
int getDate()
int getDay
int getHours()
int getMinutes
int getSeconds()
int getMonth()
int getYear()
void setTime(long msec)
void setDate(int day)
void setHours(int hours)
void setMinutes(int minutes)
void setSeconds(int seconds)
void setYear(int year)
String toString()
d로 지정된 날짜가 현재 날짜 이후이면 true, 아니면 false를 반환
d로 지정된 날짜가 현재 날짜 이전이면 true, 아니면 false를 반환
d로 지정된 날짜가 현재의 날짜와 같으면 true, 아니면 false를 반환
1970년 이후로 현재까지의 시간을 밀리초로 반환
1-31 사이의 날짜를 반환
요일을 해당되는 숫자로 반환. 0:일요일-6:토요일
0-23까지의 시간을 반환
0-59 사이의 분을 반환
0-59 사이의 초를 반환
해당되는 월을 반환. 0:1월-11:12월
1900년 이후부터의 년수를 반환
현재 객체의 날짜와 시간을 1970년 이후의 msec로 설정
날짜를 설정
시간을 설정(0-23)
분을 설정
초를 설정
년을 설정 (1900년을 기준으로 숫자로 지정. 예 : 50이면 1950년을 의미)
날짜와 동등한 문자열을 반환
13.4 Calendar 클래스
•
•
날짜와 시간에 관한 정보를 제공하는 추상클래스
다양한 상수를 제공
AM
AUGUST
DAY_OF_YEAR
ERA
JANUARY
MARCH
NOVEMBER
SATURDAY
UNDECIMBER
WEEK_OF_YEAR
DATE
DAY_OF_WEEK_IN_MONTH
FEBRUARY
HOUR
MAY
MONDAY
SECOND
THURSDAY
YEAR
APRIL
DST_OFFSET
FIELD_COUNT
JUNE
MILLISECOND
PM
SEPTEMBER
WEEK_OF_MONTH
ZONE_OFFSET
DAY_OF_WEEK
FRIDAY
MINUTE
SUNDAY
AM_PM
DECEMBER
JULY
OCTOBER
WEDNESDAY
DAY_OF_MONTH
HOUR_OF_DAY
MONTH
TUESDAY
Calendar 클래스
• Calendar 클래스의 주요 메소드
현 객체의 날짜가 calendarObj
날짜 이후이면 true, 아니면 false를 반환
abstract boolean before(Ojbect calendarObj)
현 객체의 날짜가 calendarObj
날짜 이전이면 true, 아니면 false를 반환
abstract boolean equals(Ojbect calendarObj)
현 객체의 날짜와 calendarObj
날짜가 같으면 true, 아니면 false를 반환
final int get(int calendarField)
현 객체의 calendarField에 해당되는 값
을 반환. calendarField는 Calendar.YEAR,
Calendar.MONTH 등과 같이 사용된다
static Calendar getInstance()
현재의 시간을 가진 Calendar 객체를 반환
final Date getTime()
현재의 객체와 같은 날짜를 가진 Date 객체를 반환
final void set(int year, int month,
년, 월, 일, 시간, 분, 초를 지정하여
int date, int hour, int minute, int second)
현재의 객체를 설정
final void setTime(Date d)
Date 객체 d의 정보를 이용하여
현재의 객체를 설정
abstract boolean after(Object calendarObj)
13.5 GregorianCalendar 클래스
• 추상 클래스인 Calendar 클래스의 하위 클래스로서 태양력 달력에
관한 모든 정보를 제공
• Calendar 클래스의 추상 메소드를 모두 구현하고 있다
• 생성자
GregorianCalendar() // 현재의 날짜와 시간으로 객체를 생성
GregorianCalendar(int year, int month, int date)
GregorianCalendar(int year, int month, int date, int hour, int minute)
GregorianCalendar(int year, int month, int date, int hour, int minute, int
sec)
• 메소드
boolean isLeapYear(int year)
반환
year로 지정된 년도가 윤년이면 true를
13.6 StringTokenizer 클래스
• 문자열을 파싱(parsing)하여 다양한 형태의 토큰으로 분리하여 주는
기능을 제공하는 클래스
• 생성자
StringTokenizer(String str)
StringTokenizer(String str, String delimiters)
StringTokenizer(String str, String delimiters, boolean delimitersAsToken)
str : 파싱할 문자열
delimeters : 토큰으로 분리할 분리자
delimitersAsToken : 토큰이 분리되어 반환 될 때 분리자를 포함하여
반환할지 여부를 지정. true이면 분리자가 포함되어 반환, false이면
분리자를 제외하고 반환
StringTokenizer 클래스
• 메소드
문자열에 있는 토큰의 개수를 반환
int countTokens()
boolean hasMoreTokens()
토큰이 있으면 true, 없으면 false를 반환
String nextToken()
다음 토큰을 반환
String nextToken(String delimiters)
다음 토큰을 반환하고 토큰 분리자를
delimiters로 설정
13.7 컬렉션 프레임워크(Collection Framework)
• 자료구조(data structure)를 처리하기 위한
프레임워크를 제공
• 집합(set), 리스트(list), 맵(map) 등 다양한
자료구조를 지원
• 자바 1.2부터 대부분의 자료구조 처리를 위한
클래스들을 자바 컬렉션 프레임워크(Java
Collection Framework)로 제공
(1) 컬렉션 프레임워크 인터페이스의 계층
구조
Set
SortedSet
Collection
List
Collection.iterator()
Map
Iterator
SortedMap
(1) 컬렉션 프레임워크 인터페이스의 계층 구조
• 프레임워크에서 다루는 자료구조
– Set(java.util.Set)
• 수학적 의미의 집합으로서 중복을 허용하지 않는다. TreeSet,
HashSet 클래스 등이 있다
– List(java.util.List)
• 데이터를 중간 어느 곳이나 삽입하고 삭제할 수 있다. Vector,
Stack, ArrayList, SortedList 등의 클래스가 있다.
– Map(java.util.Map)
• 키(key)와 값(value)으로 이루어진 자료구조. TreeMap,
HashMap, WeakHashMap 등의 클래스가 있다
(2) Collection 인터페이스
• 대부분의 클래스에서 사용될 수 있는 메소드를 제공한다
• 자료를 추가하고, 찾고, 삭제하는 메소드 등이 제공된다
Iterator iterator()
컬렉션 객체의 모든 자료들을 Iterator
인터페이스 형의 객체로 변환하여 반환한다
boolean contains(Object o)
현재의 컬렉션 객체 집합이 매개변수로 지정된
객체를 포함하고 있으면 true, 없으면 false를
반환한다
boolean containsAll(Collection c) 현재의 컬렉션 객체 집합이 매개변수로 지정된
컬렉션 객체의 모든 요소를 포함하고 있으면
true, 없으면 false를 반환한다.
boolean isEmpty()
현재의 컬렉션 객체 집합이 비어 있으면 true를
반환한다.
int size()
현재의 컬렉션 객체 집합이 가지고 있는
요소의 수를 정수로 반환한다.
Object[] toArray()
현재의 컬렉션 객체 집합을 객체의 배열로
변환하여 반환한다.
(2) Collection 인터페이스
boolean add(Object o)
boolean addAll(Collection c)
void clear()
매개변수로 지정된 객체를 현재의 컬렉션
객체 집합에 추가하고, 정상적인 추가가
이루어졌을 경우 true를 반환한다.
매개변수로 지정된 컬렉션 객체를 현재의
컬렉션 객체 집합에 추가하고, 정상적인
추가가 이루어졌을 경우 true를 반환한다.
현재의 컬렉션 객체 집합의 모든 요소들을
삭제한다.
boolean remove(Object o)
매개변수로 지정된 객체를 현재의 컬렉션 객체
집합에서 삭제하고, 정상적인 삭제가
이루어졌을 경우 true를 반환한다.
boolean removeAll(Collection c)
매개변수로 지정된 컬렉션 객체 요소들을
현재의 컬렉션 객체 집합에서 삭제하고,
정상적인 삭제가 이루어졌을 경우 true를
반환한다.
boolean retainAll(Collection c)
removeAll() 메소드의 반대 기능을 수행한다.
현재의 컬 렉션 객체 집합에서 매개변수로
지정된 컬렉션 객체 요소들을 제외한 나머지
요소들을 삭제한다. 삭제가 정상적으로
이루어졌을 경우 true를 반환한다.
(3) Iterator 인터페이스
• 배열의 인덱스와 같은 역할
• 컬렉션 객체 집합의 요소들을 순차적으로
처리하기 위해 사용
boolean hasNext()
Iterator 객체에 다음 요소가 있으면 true, 없으면
false를 반환한다. 인덱스의 값이 변화되지 않는다.
Object next()
다음 요소를 객체로 반환한다.
void remove()
Iterator 객체의 다음 요소를 삭제한다.
// coll2를 컬렉션 형의 객체로 가정한다
Iterator iter1 = coll2.iterator(); // coll2를 Iterator 형의 객체로 변환
while (iter1.hasNext()) {
// 다음 요소가 있을때 까지 반복
Object o = iter1.next();
// 객체에 대한 나머지 처리 부분
13.8 셋(Set) 관련 클래스
• 셋은 중복을 허용하지 않는 집합이다
• 셋을 위한 클래스 계층 구조
Collection
Set
SortedSet
TreeSet
AbstractCollection
AbstractSet
HashSet
(1) TreeSet 클래스
• TreeSet 클래스의 생성자
TreeSet()
TreeSet(Collection c)
TreeSet(Comparator c)
TreeSet(SortedSet s)
Comparator comparator()
Comparator 형의 객체를 반환한다
Object first()
현재의 셋 집합에서 첫 번째(순서화 되어 있기 때문에
가장 작은 값) 객체를 반환 한다
SortedSet HeadSet(Object toElement)
toElement로 지정된 객체보다 작은 객체들을
SortedSet 형의 객체로 반환 한다
Object last()
현재의 셋 집합에서 마지막(가장 큰값) 객체를
반환한다
SortedSet subSet(Object from, Object to)
from과 to로 지정된 사이의 객체들을 SortedSet
형의 객체로 반환 한다
SortedSet tailSet(Object fromElement)
fromElement로 지정된 객체보다 큰 객체들을
SortedSet. 형의 객체로 반환 한다
(2) HashSet 클래스
• HashSet 클래스의 생성자
HashSet()
HashSet(Collection c)
HashSet(int initialCapacity)
HashSet(int initialCapacity, float
loadFactor)
13.9 리스트(List) 관련 클래스
• 리스트는 순차적으로 나열된 형태의 자료구조
• 중복을 허용
• 리스트를 위한 클래스 계층 구조
Collection
List
AbstractSequentialList
AbstractCollection
AbstractList
LinkedList
ArrayList
Vector
Stack
(1) List 인터페이스
• 리스트 조작에 필요한 메소드 제공
void add(int index, Object o)
index로 지정된 위치에 o로 지정된 객체를 삽입한다.
boolean addAll(int index, Collection c)
index로 지정된 위치에 c로 지정된 Collection
객체를 삽입한다. c로 지정된 객체가 정상적으로
삽입되면 true 값을 반환한다.
Object get(int index)
index로 지정된 위치의 객체를 Object 형의 객체로
반환한다.
int indexOf(Ojbect o)
o로 지정된 객체의 위치를 정수값으로 반환한다.
int lastIndexOf(Object o)
o로 지정된 객체의 마지막 위치를 정수값으로
반환한다. 동일한 객체가 복수 개 있을 경우
리스트에서 가장 마지막에 있는 위치를 반환한다.
ListIterator listIterator()
리스트의 모든 객체들을 ListIterator 형의 객체로
반환한다.
ListIterator listIterator(int index)
index로 지정된 위치 다음의 리스트 객체들을
ListIterator 형의 객체로 반환한다.
Object remove(int index)
index로 지정된 위치의 객체를 삭제하고, 삭제된
객체를 Object 형의 객체로 반환한다.
Object set(int index, Object o)
index로 지정된 위치의 객체를 o로 지정된 객체로
대체하고, 대체된(index로 지정되었던) 객체를
반환한다.
(2) Collection 클래스
• 컬렉션 프레임워크 클래스들을 위한 유틸리티
클래스(그림 13-1참조)
• 리스트를 효율적으로 사용할 수 있는 클래스
메소드(static으로 선언된) 제공
static int binarySearch(List list, Object o)
list로 지정된 List 형의 객체에서 o로 지정된
객체를 찾아내기 위한 이진 탐색을 수행하여 o로
지정된 객체가 있는 위치를 반환한다.
static void copy(List des, List src) src로 지정된 List 형의 객체를 des 객체에 복사한다
static Enumeration enumeration
(Collection c)
c로 지정된 Collection 형의 객체를 Enumeration
인터페이스 형의 객체로 변환하여 반환한다.
static void fill(List list, Object o)
list로 지정된 List형의 객체에 있는 모든 요소들을 o
로 지정된 객체로 대체한다.
static Object max(Collection c)
c로 지정된 Collection 형의 객체에서 가장 큰 값을
가지는 요소를 Object 형의 객체로 반환한다.
static Object min(Collection c)
c로 지정된 Collection 형의 객체에서 가장 작은 값을
가지는 요소를 Object 형의 객체로 반환한다.
static void shuffle(List list)
list로 지정된 List 형의 객체가 가지는 요소들을
랜덤하게 섞어서 재배치 한다.
static void sort(List list)
list로 지정된 List 형의 객체를 값의 순서대로
정렬한다.
(3) LinkedList 클래스
• LinkedList 클래스의 생성자
LinkedList()
LinkedList(Collection c)
void addFirst(Object o)
o로 지정된 객체를 리스트의 처음 위치에 삽입한다.
void addLast(Object o)
o로 지정된 객체를 리스트의 마지막 위치에
삽입한다.
Object getFirst()
리스트의 첫 요소를 Object 형의 객체로 반환한다.
Object getLast()
리스트의 마지막 요소를 Object 형의 객체로
반환한다.
Object removeFirst()
리스트의 첫 요소를 삭제하고, 삭제된 요소를 Object
형의 객체를 반환한다.
Object removeLast()
리스트의 마지막 요소를 삭제하고, 삭제된 요소를
Object 형의 객체를 반환한다.
(4) ArrayList 클래스
• ArrayList 클래스의
생성자
ArrayList()
ArrayList(Collection c)
ArrayList(int size)
void ensureCapacity(int size)
리스트의 용량이 최소한 size로 지정된 용량보다 크도록 자동
유지한다.
void trimToSize()
현재 ArrayList 객체의 용량을 요소의 개수에 맞도록 조정한다.
(5) Vector 클래스와 Enumeration
인터페이스
• 자바에서의 배열(Array)은 한번 생성되면 늘이거나 줄일 수 없는
고정 길이를 가진다)
• Vector : 가변 배열
• 생성자
Vector()
Vector(int size)
Vector(int size, int incr)
(5) Vector 클래스와 Enumeration 인터페이스
• Vector 클래스의 주요 메소드
void addElement(Object obj)
int capacity()
Object clone()
boolean contains(Object obj)
void copyInto(Object array[])
Object elementAt(int index)
Enumeration elements()
void ensureCapacity(int minimum)
Object firstElement()
int indexOf(Object obj)
int indexOf(Object obj, int start)
void insertElementAt(Ojbect obj,
int index)
벡터에 obj 요소를 삽입
벡터의 용량을 반환
현재의 객체를 복사하여 반환
obj가 벡터의 요소에 포함되어 있으면 true,
아니면 false를 반환
현재의 벡터 객체를 array 배열에 복사
index 위치의 요소를 반환
벡터의 요소들에 대한 Enumeration 객체를 반환
최소 크기를 minimum으로 설정
첫 번째 요소를 반환
현재의 벡터에서 obj의 첫 번째 위치를 찾아 반환.
obj가 없으면 -1을 반환
벡터의 start 위치부터 obj를 찾아 반환. obj가 없으면
-1을 반환
벡터의 index위치에 obj를 삽입
• Vector 클래스의 주요 메소드(계속)
벡터가 비어 있으면 true, 아니면 false를 반환
마지막 요소를 반환
벡터에서 obj가 마지막으로 나타난 위치를 반환 obj가 없으면
-1을 반환
int lastIndexOf(Object obj,
벡터의 start위치로부터 obj가 마지막으로 나타난 마지막
int start)
위치를 반환. 벡터에 obj가 없으면 -1을 반환
void removeAllElements()
벡터의 모든 요소를 삭제
boolean removeElement(Object obj)
벡터에서 첫 번째 obj를 삭제하고 true를 반환.
obj가 없으면 false를 반환
void removeElementAt(int index)
index 위치의 요소를 삭제
void setElementAt(Object obj,
벡터의 index 위치에 obj를 설정
int index)
void setSize(int size)
벡터의 크기를 size로 설정. 초과되는 부분은 손실
int size()
벡터의 현재 크기를 반환
String toString()
벡터에 해당되는 문자열을 반환
void trimToSize()
벡터 용량의 크기를 현재 벡터가 가지고 있는 요소
크기만큼으로 설정(공백이 제거된 용량).
boolean isEmpty()
Object lastElement()
int lastIndexOf(Object obj)
Vector 클래스와 Enumeration 인터페이스
• Enumeration 인터페이스 : 객체들의 집합에서 각각의 객체들을
하나씩 처리할 수 있는 메소드 제공
• Enumeration 인터페이스에 선언된 메소드
boolean hasMoreElements()
Object nextElement()
요소가 있으면 true, 없으면 false를 반환
다음 요소를 반환
(6) Stack 클래스
• Vector 클래스의 하위 클래스로서 LIFO(Last-In First-Out) 특성을 가진
자료구조
• 메소드
boolean empty()
Object peek()
throws EmptyStackException
Object pop()
throws EmptyStackException
Object push(Object obj)
int search(Object obj)
스택이 비어 있으면 true, 아니면 false를 반환
스택의 최상위 요소를 반환. 단 스택에서 요소를
삭제하지 않는다
스택의 최상위 요소를 반환. 반환된 요소는
스택에서 제거
obj를 스택의 top에 추가한 다음 반환
스택에서 obj를 찾아 인덱스를 반환.
top의 인덱스는 1이다. obj가 없으면 -1을 반환
13.10 맵(Map) 관련 클래스
• 맵은 키와 값으로 이루어진 데이터의 집합
• 키 값의 중복을 허용하지 않는다
• 맵을 위한 클래스 계층 구조
Dictionary
HashTable
Map
Properties
jdk1.2 이전
SortedMap
jdk1.2 이후
TreeMap
AbstractMap
HashMap
WeakHashMap
(1) Hashtable 클래스
• 생성자
Hashtable()
Hashtable(int size)
Hashtable(int size, float fillRatio)
size : 생성될 Hashtable 객체의 크기
fillRatio : 0.0-1.0사이의 값으로 load factor로 사용. 즉 해쉬 테이블의
크기보다 저장될 요소가 많을 경우 fillRatio로 지정된 값이 키 값에
곱해져서 사용되게 된다
(1) Hashtable 클래스
• 메소드
boolean contains(Object value)
throws NullPointerException
boolean containsKey(Object key)
boolean containsValue(Object value)
Enumeration keys()
Enumeration elements()
Object put(Object key, Object value)
thorws NullPointerException
Object remove(Object key)
int size()
String toString()
해쉬 테이블의 값에 value 요소가 있으면
true, 아니면 false를 반환. 만일 value가
null이면 NullPointerException 예외 발생
해쉬 테이블의 키 필드에 key로 지정된 값
이 있으면 true 아니면 false를 반환
해쉬 테이블의 값 필드에 value로 지정된
값이 있으면 true, 아니면 false를 반환
해쉬테이블의 키 값에 대한 Enumeration
객체반환
해쉬 테이블의 값 요소들에 대한
Enumeration 객체를 반환
해쉬 테이블에 하나의 요소를 추가. key 또
는 value중 하나의 요소가 null이면
NullPointerException 예외 발생
key로 지정된 요소를 해쉬 테이블에서 제거
해쉬 테이블에서 키의 개수를 반환
해쉬 테이블과 동등한 문자열을 반환
(2) TreeMap 클래스
• 키 값이 정렬된 형태로 저장
• 메소드
Object firstKey()
처음 요소의 Key값을 Object 형의 객체로 반환한다.
Object lastKey()
마지막 요소의 Key값을 Object 형의 객체로 반환한다
Map headMap(Object to)
처음부터 to로 지정된 요소 바로 전까지의 요소를 Map형의
객체로 반환한다.
Map tailMap(Object from)
from으로 지정된 요소부터 마지막 요소까지를 Map 형의 객체로
반환한다.
Map subMap(Object from, Object to)
from으로 지정된 요소부터 to로 지정된 요소 바로
전까지의 요소들을 Map형의 객체로 반환한다.