프로그래밍/Java

자주 활용되는 java.util

dinggul94 2024. 10. 5. 13:05
728x90

 

1. Collections Framwork

데이터를 구조화하고 관리하는데 필수적인 도구입니다.

List, Set, Map과 같은 인터페이스와 그 구현체들이 java.util에 포함되어 있습니다.

 

1.1 LIst

 

  • ArrayList<E>: 동적 배열을 사용하여 요소를 저장하는 리스트. 크기가 가변적이며 순차적인 데이터 접근에 유리합니다.
  • LinkedList<E>: 요소를 노드로 연결한 리스트. 삽입, 삭제 작업이 빈번할 때 유리합니다.

 

List<String> arrayList = new ArrayList<>();
arrayList.add("Apple");
arrayList.add("Banana");

List<String> linkedList = new LinkedList<>();
linkedList.add("Orange");
linkedList.add("Pineapple");

 

1.2 Set

 

  • HashSet<E>: 중복을 허용하지 않으며, 순서가 없는 집합입니다. 데이터 검색이 빠릅니다.
  • TreeSet<E>: 정렬된 상태를 유지하는 집합입니다. 자연 순서나 제공된 비교자에 따라 정렬됩니다.
Set<String> hashSet = new HashSet<>();
hashSet.add("One");
hashSet.add("Two");

Set<String> treeSet = new TreeSet<>();
treeSet.add("Apple");
treeSet.add("Banana");

 

 

1.3 Map

 

  • HashMap<K, V>: 키와 값을 쌍으로 저장하는 데이터 구조. 중복 키를 허용하지 않으며, 빠른 검색이 가능합니다.
  • TreeMap<K, V>: 키를 정렬된 상태로 저장하는 맵. 키에 대한 순서를 유지합니다.
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("A", 1);
hashMap.put("B", 2);

Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put("X", 100);
treeMap.put("Y", 200);

 

 

1.4 Collections클래스

List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9);
Collections.sort(numbers);  // 리스트 정렬

 

2.Date & Time

Java8 이전에는 java.util.Date 와 java.util.Calendar 로 날짜와 시간을 다루었지만

Java8 이후에는 java.time패키지가 추가됨.그러나 여전히 자주 사용됩니다.

 

2.1 Date

Date date = new Date();
System.out.println(date);  // 현재 날짜와 시간 출력

 

2.2 Calendar

Calendar calendar = Calendar.getInstance();
calendar.set(2023, Calendar.OCTOBER, 5);  // 2023년 10월 5일 설정
Date specificDate = calendar.getTime();

 

3.Random

임의의 숫자를 생성하는 데 사용됩니다. 정수, 부동 소수점 숫자, 불리언 값 등 다양한 타입의 랜덤 값을 생성할 수 있습니다.

Random random = new Random();
int randomInt = random.nextInt(100);  // 0부터 99까지의 랜덤 정수 생성
double randomDouble = random.nextDouble();  // 0.0에서 1.0 사이의 랜덤 실수 생성

 

4.Scanner

콘솔 입력이나 파일 입력을 처리하는 데 자주 사용됩니다. 사용자 입력을 읽거나, 파일의 내용을 쉽게 처리할 수 있습니다.

Scanner scanner = new Scanner(System.in);
System.out.print("Enter your name: ");
String name = scanner.nextLine();  // 사용자로부터 문자열 입력 받기

Scanner fileScanner = new Scanner(new File("data.txt"));
while (fileScanner.hasNextLine()) {
    String line = fileScanner.nextLine();
    System.out.println(line);
}

 

5. Arrays

배열을 다루는 유틸리티 메서드를 제공합니다. 배열의 정렬, 검색, 복사 등의 작업을 간편하게 할 수 있습니다.

int[] numbers = {5, 2, 8, 4};
Arrays.sort(numbers);  // 배열 정렬
System.out.println(Arrays.toString(numbers));  // 배열 출력

int index = Arrays.binarySearch(numbers, 8);  // 이진 탐색으로 배열에서 값 찾기

 

6. Timer & TimerTask

작업을 일정 시간 후에 실행하거나 주기적으로 실행할 때 사용됩니다. 일정 주기로 특정 작업을 자동으로 수행해야 할 때 유용합니다.

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
        System.out.println("Task is running");
    }
}, 2000);  // 2초 후에 작업 실행

 

7. UUID

범용적으로 고유한 식별자를 생성하는 데 사용됩니다. 주로 분산 시스템에서 고유한 식별자를 생성하거나 객체를 고유하게 구분할 때 사용됩니다.

UUID uuid = UUID.randomUUID();
System.out.println(uuid);  // 고유한 UUID 생성 및 출력

 

8. Optional(Java8 이후)

값이 존재할 수도 있고 없을 수도 있는 객체를 다루는 데 사용됩니다. 이를 통해 null로 인한 예외 처리를 보다 안전하게 할 수 있습니다.

Optional<String> optionalName = Optional.of("John");
if (optionalName.isPresent()) {
    System.out.println(optionalName.get());  // "John" 출력
}

optionalName.ifPresent(name -> System.out.println(name));  // 값이 존재하면 출력
728x90