13.5 GregorianCalendar 클래스 13.6 Vector 클래스와 Enumeration 인터페이스 13장 유틸리티 13.1 유틸리티 클래스 개요 13.2 Random 클래스 13.3 Date 클래스 13.4 Calendar 클래스 13.5 GregorianCalendar 클래스 13.6 Vector 클래스와 Enumeration 인터페이스 13.7 Stack 클래스 13.8 Hashtable 클래스 13.9 StringTokenizer 클래스
13.1 유틸리티 클래스 개요 BitSet Calendar GregorianCalendar Date Dictionary Hashtable Properties EventObject Object Locale Observable Random ResourceBundle ListResourceBundle PropertyResourceBundle StringTokenizer TimeZone SimpleTimeZone Vector Stack
13.2 Random 클래스 난수 발생 기능 제공 double, float, int, long 등 다양한 형태의 난수 제공 생성자 Random() // 현재의 시간을 초기값으로 하는 난수 발생 Random(long seed) // seed 값을 초기값으로 하는 난수 발생
Random 클래스 Random 클래스의 주요 메소드 void nextBytes(byte buffer[]) buffer를 난수로 채운다 float nextFloat() float 형의 난수를 반환 int nextInt() int 형의 난수를 반환 long getLong() long 형의 난수를 반환 double nextDouble() double 형의 난수를 반환 double nextGaussian() Gaussian 형의 난수를 double 값으로 반환 void setSeed(long newseed) 난수 발생기의 seed 값을 newseed 값으로 설정
Random 클래스 예제 출력결과 교재 참조
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) d로 지정된 날짜가 현재 날짜 이후이면 true, 아니면 false를 반환 boolean before(Date d) d로 지정된 날짜가 현재 날짜 이전이면 true, 아니면 false를 반환 boolean equals(Date d) d로 지정된 날짜가 현재의 날짜와 같으면 true, 아니면 false를 반환 long getTime() 1970년 이후로 현재까지의 시간을 밀리초로 반환 int getDate() 1-31 사이의 날짜를 반환 int getDay 요일을 해당되는 숫자로 반환. 0:일요일-6:토요일 int getHours() 0-23까지의 시간을 반환 int getMinutes 0-59 사이의 분을 반환 int getSeconds() 0-59 사이의 초를 반환 int getMonth() 해당되는 월을 반환. 0:1월-11:12월 int getYear() 1900년 이후부터의 년수를 반환 void setTime(long msec) 현재 객체의 날짜와 시간을 1970년 이후의 msec로 설정 void setDate(int day) 날짜를 설정 void setHours(int hours) 시간을 설정(0-23) void setMinutes(int minutes) 분을 설정 void setSeconds(int seconds) 초를 설정 void setYear(int year) 년을 설정 (1900년을 기준으로 숫자로 지정. 예 : 50이면 1950년을 의미) String toString() 날짜와 동등한 문자열을 반환
Date 클래스 예제
13.4 Calendar 클래스 날짜와 시간에 관한 정보를 제공하는 추상클래스 다양한 상수를 제공 AM AUGUST DAY_OF_WEEK DAY_OF_YEAR ERA FRIDAY JANUARY MARCH MINUTE NOVEMBER SATURDAY SUNDAY UNDECIMBER WEEK_OF_YEAR AM_PM DATE DAY_OF_WEEK_IN_MONTH DECEMBER FEBRUARY HOUR JULY MAY MONDAY OCTOBER SECOND THURSDAY WEDNESDAY YEAR APRIL DAY_OF_MONTH DST_OFFSET FIELD_COUNT HOUR_OF_DAY JUNE MILLISECOND MONTH PM SEPTEMBER TUESDAY WEEK_OF_MONTH ZONE_OFFSET
Calendar 클래스 Calendar 클래스의 주요 메소드 abstract boolean after(Object calendarObj) 현 객체의 날짜가 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의 정보를 이용하여 현재의 객체를 설정
Calendar 클래스 예제
13.5 GregorianCalendar 클래스 생성자 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를 반환
GregorianCalendar 클래스 예제
13.6 Vector 클래스와 Enumeration 인터페이스 자바에서의 배열(Array)은 한번 생성되면 늘이거나 줄일 수 없는 고정 길이를 가진다) Vector : 가변 배열 생성자 Vector() Vector(int size) Vector(int size, int incr) Vector 클래스의 주요 메소드 : 표 13-4 참조
Vector 클래스와 Enumeration 인터페이스 void addElement(Object obj) 벡터에 obj 요소를 삽입 int capacity() 벡터의 용량을 반환 Object clone() 현재의 객체를 복사하여 반환 boolean contains(Object obj) obj가 벡터의 요소에 포함되어 있으면 true, 아니면 false를 반환 void copyInto(Object array[]) 현재의 벡터 객체를 array 배열에 복사 Object elementAt(int index) index 위치의 요소를 반환 Enumeration elements() 벡터의 요소들에 대한 Enumeration 객체를 반환 void ensureCapacity(int minimum) 최소 크기를 minimum으로 설정 Object firstElement() 첫 번째 요소를 반환 int indexOf(Object obj) 현재의 벡터에서 obj의 첫 번째 위치를 찾아 반환. obj가 없으면 -1을 반환 int indexOf(Object obj, int start) 벡터의 start 위치부터 obj를 찾아 반환. obj가 없으면 -1을 반환 void insertElementAt(Ojbect obj, 벡터의 index위치에 obj를 삽입 int index)
Vector 클래스와 Enumeration 인터페이스 boolean isEmpty() 벡터가 비어 있으면 true, 아니면 false를 반환 Object lastElement() 마지막 요소를 반환 int lastIndexOf(Object obj) 벡터에서 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() 벡터 용량의 크기를 현재 벡터가 가지고 있는 요소 크기만큼으로 설정(공백이 제거된 용량).
Vector 클래스와 Enumeration 인터페이스 boolean hasMoreElements() 요소가 있으면 true, 없으면 false를 반환 Object nextElement() 다음 요소를 반환 Enumeration 인터페이스에 선언된 메소드는 Vector 클래스에 구현되어 있다
Vector 클래스와 Enumeration 인터페이스 예제
13.7 Stack 클래스 Vector 클래스의 하위 클래스로서 LIFO(Last-In First-Out) 특성을 가진 자료구조 메소드 boolean empty() 스택이 비어 있으면 true, 아니면 false를 반환 Object peek() 스택의 최상위 요소를 반환. 단 스택에서 요소를 throws EmptyStackException 삭제하지 않는다 Object pop() 스택의 최상위 요소를 반환. 반환된 요소는 throws EmptyStackException 스택에서 제거 Object push(Object obj) obj를 스택의 top에 추가한 다음 반환 int search(Object obj) 스택에서 obj를 찾아 인덱스를 반환. top의 인덱스는 1이다. obj가 없으면 -1을 반환
Stack 클래스 예제
13.8 Hashtable 클래스 키(key)와 값(value)의 쌍으로 이루어진 요소(element)를 저장하는 자료구조 생성자 Hashtable() Hashtable(int size) Hashtable(int size, float fillRatio) size : 생성될 Hashtable 객체의 크기 fillRatio : 0.0-1.0사이의 값으로 load factor로 사용. 즉 해쉬 테이블의 크기보다 저장될 요소가 많을 경우 fillRatio로 지정된 값이 키값에 곱해져서 사용되게 된다
Hashtable 클래스 메소드 boolean contains(Object value) 해쉬 테이블의 값에 value 요소가 있으면 throws NullPointerException true, 아니면 false를 반환. 만일 value가 null이면 NullPointerException 예외 발생 boolean containsKey(Object key) 해쉬 테이블의 키 필드에 key로 지정된 값 이 있으면 true 아니면 false를 반환 boolean containsValue(Object value) 해쉬 테이블의 값 필드에 value로 지정된 값이 있으면 true, 아니면 false를 반환 Enumeration elements() 해쉬 테이블의 값 요소들에 대한 Enumeration 객체를 반환 Object put(Object key, Object value) 해쉬 테이블에 하나의 요소를 추가. key 또 thorws NullPointerException 는 value중 하나의 요소가 null이면 NullPointerException 예외 발생 Object remove(Object key) key로 지정된 요소를 해쉬 테이블에서 제거 int size() 해쉬 테이블에서 키의 개수를 반환 String toString() 해쉬 테이블과 동등한 문자열을 반환
Hashtable 클래스 예제
13.9 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로 설정
StringTokenizer 클래스 예제