-
java.util PackageJava 2020. 1. 13. 21:41반응형
java.util Package에서 유용한 Class
-
Arrays
-
Collections
-
Date & Calendar
-
Formatter
-
Random
-
StringTokenizer
Arrays
배열을 위한 도우미 클래스
기본 자료형의 배열을 처리하기 위해 동일한 메서드들이 많이 overloading 되어있음
// 정렬 sort() // 검색 binarySearch() // 비교 equals() deepEquals() // 변경 - 특정 값으로 데이터를 채움 fill() // 복사 copyOf() copyOfRange() // 변환 asList() // 해시코드 hashCode() deepHashCode() // 문자열로변환 toString()
Collections
Collection 관련 Class를 위한 도우미 클래스
메서드는 모두 static 메서드
// 검색 binarySearch() min() max() indexOfSubList() lastIndexOfSubList() frequency() // 정렬 sort() // 순서 변경 reverse() shuffle() swap() rotate() reverseOrder() // 변경 & 추가 fill() replaceAll() addAll // 복사 copy() nCopies() // 제거 emptySet() emptyList() emptyMap() // 추출 newSetFromMap() // 비교 disjoint() // 타입변환 enumeration() list() asLifoQueue() // 변경 가능 여부 속성 변경 unmodifiableCollection() unmodifiableSet() unmodifiableSortedSet() unmodifiableList() unmodifiableMap() unmodifiableSortedMap() /* Thread Safe 여부 속성 추가 * 예) List jamieList = Collections.synchronizedList(new ArrayList(...)); - ArrayList Thread Safe */ synchronizedCollection() synchronizedSet() synchronizedSortSet() synchronizedList() synchronizedMap() synchronizedSortedMap() // Type 안전 여부 속성 추가 checkedCollection() checkedSet() checkedSortedSet() checkedList() checkedMap() checkedSortedMap() // 싱글톤 singleton() singletonList() singletonMap()
Date & Calendar
날짜 처리
-
JDK 1.0 ~ - Date Class (매우 많은 deprecated된 메서드들이 존재)
-
JDK 1.1 ~ - Calendar Class
Date Class의 사용할 수 있는 생성자(Deprecated 되지 않은)
// 객체가 생성된 시간을 갖는 Date Object 생성 Date() /* 매개 변수로 넘어온 long 타입 시간을 갖는 Date Object 생성 * long으로 나타내는 시간 값은 UTC 시간 (System.currentTimeMillis() 메서드 리턴과 동일) * 한국의 경우 GTM 시간 + 9시간 * UTC 시간의 경우 1970년 1월 1일부터 표시되므로, 이전의 시간은 음수 형태의 long으로 표현 */ Date(long date)
Date Class의 사용할 수 있는 주요 메서드(deprecated 되지 않은)
// Date Object의 시간을 long 타입으로 변환 long getTime() // Date Object의 시간을 매개 변수로 받은 시간으로 변경 void setTime(long time)
Calendar Class의 선언
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Calendar Object 생성
abstract Class라서 생성자로 Object를 생성할 수 없지만, getInstance() 메서드를 통해 Calendar Object 생성 가능
// 기본 Object 생성 메서드. 모든 값은 default, 현재 시간으로 지정 Calendar getInstance() // 지정된 지역 Calendar getInstance(Locale aLocale) // 지정된 타임존 Calendar getInstance(TimeZone zone) // 지정된 타임존과 지역 Calendar getInstance(Timezone zone, Locale aLocale) /* Locale과 TimeZone * Locale Class와 TimeZone Class는 모두 java.util Package에 선언 * Locale Class * - 지역에 대한 정보를 담음(예 - 한국) * - 자바 설치시 OS에 있는 지역 정보를 확인하여 JVM의 설정에 저장 * - 통화나 소수점 표시 등을 국가에 맞게 표현할 때 유용) * TimeZone Class * - 시간대를 나타내고 처리하기 위해 사용 * - 한국 : GMT + 9시간 * - abstract 클래스, 편하게 사용하려면 같은 Package의 SimpleTimeZone Class 사용 */
JDK 기본 API에 GregorianCalendar 클래스 : 동일하게 객체 생성 가능 - 추천 (단, 음력 지원 안함)
-
추천하는 이유 : Calendar에 구현되어있는 abstract 메서드들이 모두 구현되어 있음
Calendar jamieCal = new GregorianCalendar(); // 아래와 같음, 즉 아래도 GregorianCalendar 객체가 리턴됨 Calendar jamieCal2 = Calendar.getInstance();
Calendar Class API 문서의 상수들
날짜 계산 관련
-
ERA, YEAR, MONTH, WEEK_OF_YEAR, WEEK_OF_MONTH, DATE, DAY_OF_MONTH, DAY_OF_YEAR, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH
시간 관련
-
AM_PM, HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND, ZONE_OFFSET, DST_OFFSET, AM, PM
요일 관련
-
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
월 관련 - Calendar Class의 객체를 생성할 때 월은 0월 ~ 11월
-
JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, UNDECIMBER
기타
-
FIELD_COUNT, ALL_STYLES, SHORT(JAN), LONG(JANUARY)
Calendar Class 관련 메서드들
// 지정한 field의 값을 amount만큼 더함 void add(int field, int amount) // 지정한 filed의 값을 amount만큼 더하는데, 그 상위값은 변경하지 않음 void roll(int field, int amount)
Random
생성자
// 랜덤으로 값을 생성 - 보통 이것을 사용 Random() // seed값에 따라 값을 생성 Random(long seed)
메서드
nextByte(byte[]) nextInt() nextInt(int) // 자주쓰임 0 <= nextLong() nextBoolean() nextFloat() // 0 <= nextDouble() // 0 <= nextGaussian() // 정규분포 // 0 ~ 100까지 값 Random nextInt(100)
StringTokenizer
문자열을 자르기 위한 Class - 어떤 문자열이 일정한 기호(구분자, delimiter)로 분리되어 있을 때 적합
String.split()을 사용하는 것을 권장함(Java API 문서)
-
split("정규표현식을 따르는 문자열을 분리하는 구분자") 배열로 결과를 넘겨줌
-
아주 큰 문자열을 다루고, 앞의 일부 값만 처리할 경우엔 split() 메서드는 메모리 낭비가 심하므로 StringTokenizer를 사용하는 것이 더 나을 수도
생성자
/* 기본 구분자로 매개 변수로 넘어온 문자열(str)을 나눔 * 즉 " \t\n\r\f"(공백, 탭, new Line, Carriage return(CR), Form feed)를 나타내는 char를 만나면 나눔 */ StringTokenizer(String str) // 지정된 구분자(delim)로 문자열(str)을 나눔 StringTokenizer(String str, String delim) /* 마지막 매개 변수값이 false일 때는 매개 변수가 두 개인 생성자와 동일 * 마지막 매개 변수값이 true라면 구분자도 같이 리턴함 */ StringTokenizer(String str, String delim, boolean returnDelims)
StringTokenizer Object
// Next Token 유무 Check hasMoreTokens() hasMoreElements() // Next token 받기 nextTokens() nextElement()
반응형'Java' 카테고리의 다른 글
Thread 개념 및 Runnable Interface VS Thread Class (0) 2020.01.13 java.math.BigDecimal (0) 2020.01.13 Collection - Map (0) 2020.01.09 Collection - Queue (0) 2020.01.08 Collection - Set (0) 2020.01.08 -