반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바스크립트
- Visual Studio Code
- Button
- 이클립스
- HashMap
- ArrayList
- Eclipse
- 문자열
- replace
- javascript
- json
- input
- map
- CSS
- date
- Array
- js
- table
- 자바
- list
- Java
- 배열
- 정규식
- string
- vscode
- 이탈리아
- html
- IntelliJ
- CMD
- 인텔리제이
Archives
- Today
- Total
어제 오늘 내일
[Java HashSet] 정렬 방법과 활용 예제 본문
HashSet
은 내부적으로 순서를 보장하지 않는 해시 구조라 정렬 기능이 없습니다.
하지만 정렬된 형태로 데이터를 다루고 싶다면 몇 가지 방법을 사용할 수 있습니다.
1. List로 변환 후 Collections.sort()
import java.util.*;
public class HashSetSortList {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>(Arrays.asList("banana", "apple", "cherry"));
// List로 변환
List<String> list = new ArrayList<>(set);
// 정렬
Collections.sort(list);
System.out.println(list); // [apple, banana, cherry]
}
}
HashSet → List 변환 후 정렬하는 가장 일반적인 방법입니다.
2. List로 변환 후 Stream sorted() (Java 8+)
import java.util.*;
import java.util.stream.Collectors;
public class HashSetSortStream {
public static void main(String[] args) {
HashSet<Integer> set = new HashSet<>(Arrays.asList(5, 1, 3, 2, 4));
List<Integer> sorted = set.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sorted); // [1, 2, 3, 4, 5]
}
}
스트림 API를 이용하면 더 간결하게 정렬할 수 있습니다.
3. TreeSet으로 변환
import java.util.*;
public class HashSetSortTreeSet {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>(Arrays.asList("dog", "cat", "bird"));
TreeSet<String> treeSet = new TreeSet<>(set);
System.out.println(treeSet); // [bird, cat, dog]
}
}
TreeSet
은 자동 정렬을 지원하므로 HashSet을 TreeSet으로 변환하면 정렬된 상태를 유지할 수 있습니다.
4. TreeSet + 사용자 정의 Comparator
import java.util.*;
public class HashSetSortCustom {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>(Arrays.asList("kim", "lee", "park"));
// 문자열 길이 기준 정렬
TreeSet<String> sorted = new TreeSet<>(Comparator.comparingInt(String::length));
sorted.addAll(set);
System.out.println(sorted); // [lee, kim, park]
}
}
TreeSet 생성 시 Comparator
를 지정하면 원하는 기준으로 정렬할 수 있습니다.
결론
- 간단히 한 번 정렬 → List 변환 + Collections.sort()
- Java 8 이상 → Stream API 활용
- 정렬 상태 유지 → TreeSet 변환
- 커스텀 정렬 → TreeSet + Comparator
반응형
'IT > Java' 카테고리의 다른 글
[Java HashMap] get() vs getOrDefault() 차이와 활용법 (0) | 2025.10.10 |
---|---|
[Java 컬렉션] HashMap vs HashSet vs TreeSet 비교 (0) | 2025.10.09 |
[Java TreeSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.09 |
[Java LinkedHashSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.08 |
[Java HashSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.08 |
Comments