ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java.util Package
    Java 2020. 1. 13. 21:41
    반응형

    java.util Package에서 유용한 Class

    • Arrays

    • Collections

    • Date & Calendar

    • Formatter

    • Properties

    • 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

    댓글

Designed by Tistory.