자바

[JAVA] java.util 패키지

planting grass 2025. 3. 19. 17:44
728x90

java.util이란?

java.util package에는 이름 그대로 유틸리티와 관련된 인터페이스와 클래스들이 있고, 컬렉션 프레임워크 역시 포함한다.

컬렉션 프레임워크는 이미 다뤘었기 때문에, 이번에는 유틸리티와 관련해서 알아보자.

컬렉션 프레임 워크는 아래 블로그에 잘 정리해뒀다.

https://lold2424.tistory.com/183

 

[JAVA] 컬렉션 프레임워크(Collection Framework)

컬렉션 프레임워크란?컬렉션 프레임워크(Collection Framework)는 Java에서 데이터 구조를 효율적으로 다룰 수 있도록 설계된 클래스와 인터페이스의 모음이다.이를 통해 다양한 자료구조를 쉽게 구현

lold2424.tistory.com

util 패키지에 어떤 인터페이스와 클래스가 있는지 확인하려면 아래 링크를 타고 들어가면 된다.

https://docs.oracle.com/javase/8/docs/api/java/util/package-summary.html

 

java.util (Java Platform SE 8 )

Calendar The Calendar class is an abstract class that provides methods for converting between a specific instant in time and a set of calendar fields such as YEAR, MONTH, DAY_OF_MONTH, HOUR, and so on, and for manipulating the calendar fields, such as gett

docs.oracle.com

위 링크는 jdk8 버전이기 때문에 상위버전을 쓴다면 따로 찾아봐야 한다.

util

util은 말 그대로 컬렉션을 조작하고, 날짜나 시간을 처리하거나 난수 생성, 문자열 토큰화 등 말 그대로 유틸리티와 관련된 클래스들이 있다.

유틸리티 클래스에는 어떤 기능을 수행하는 클래스들이 있는지 알아보자

클래스 기능 설명
Collections 컬렉션 조작 정렬, 섞기, 최대/최소 값 찾기
Arrays 배열 조작 정렬, 변환, 검색 (asList())
Random 난수 생성 nextInt(), nextDouble()
SecureRandom 보안 강한 난수 보안 용도 난수 생성
Date 날짜 표현 java.time 패키지 권장
Calendar 날짜 조작 연, 월, 일 조작 가능
LocalDate, LocalTime, LocalDateTime 최신 날짜/시간 API java.time 패키지 (추천)
TimeZone 시간대 관리 특정 지역 시간대 다루기
StringTokenizer 문자열 분할 split() 사용이 더 일반적
Scanner 입력 처리 콘솔 입력을 쉽게 처리

사용 예시

1. 날짜 및 시간 처리

클래스명 설명
Date 날짜와 시간을 표현하는 기본 클래스 (구버전, java.time 패키지 사용 권장)
Calendar 연, 월, 일, 시간 등을 조작할 수 있는 클래스
GregorianCalendar Calendar의 구현체로 양력(그레고리안 달력) 기반
TimeZone 특정 지역의 시간대를 다루는 클래스
Locale 지역(언어, 국가) 정보를 다루는 클래스
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2025, Calendar.MARCH, 19); // 2025년 3월 19일 설정
        System.out.println(calendar.getTime()); // Date 객체 출력

        TimeZone timeZone = TimeZone.getDefault();
        System.out.println("현재 시간대: " + timeZone.getID());
    }
}

2. 난수(Random) 및 보안 관련

클래스명 설명
Random 일반적인 난수 생성 (nextInt(), nextDouble() 등)
SecureRandom 보안적으로 강력한 난수 생성 (암호학적 용도)
import java.util.Random;
import java.security.SecureRandom;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        System.out.println("일반 난수: " + random.nextInt(100));

        SecureRandom secureRandom = new SecureRandom();
        System.out.println("보안 난수: " + secureRandom.nextInt(100));
    }
}

3. 문자열 처리

클래스명 설명
StringTokenizer 특정 구분자를 기준으로 문자열을 나누는 클래스
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
        StringTokenizer tokenizer = new StringTokenizer("Java,Python,C++", ",");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

4.입력처리(스캐너)

클래스명 설명
Scanner 콘솔 입력을 처리하는 클래스
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("이름을 입력하세요: ");
        String name = scanner.nextLine();
        System.out.println("입력한 이름: " + name);
        scanner.close();
    }
}

5. 배열 및 컬렉션 조작

클래스명 설명
Arrays 배열 관련 유틸리티 (sort(), binarySearch(), asList())
Collections 컬렉션 관련 유틸리티 (sort(), shuffle(), min(), max())
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // Arrays 활용
        int[] arr = {5, 2, 8, 1, 3};
        Arrays.sort(arr);
        System.out.println("정렬된 배열: " + Arrays.toString(arr));

        // Collections 활용
        List<String> list = Arrays.asList("Banana", "Apple", "Cherry");
        Collections.sort(list);
        System.out.println("정렬된 리스트: " + list);
    }
}
728x90