[JAVA] java.util 패키지
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);
}
}