반응형
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
- Eclipse
- 자바
- Button
- ArrayList
- 정규식
- 이클립스
- js
- html
- date
- replace
- 인텔리제이
- 이탈리아
- 배열
- json
- HashMap
- input
- CMD
- Array
- 자바스크립트
- string
- 문자열
- table
- IntelliJ
- vscode
- Visual Studio Code
- map
- list
- javascript
- Java
- CSS
Archives
- Today
- Total
어제 오늘 내일
[Java HashSet] 초기화 방법 총정리 본문
HashSet
은 중복 없는 집합(Set) 자료구조입니다. 보통은 new HashSet<>()
만 쓰지만, 상황에 따라 다양한 초기화 방법이 있습니다. 이번 글에서는 HashSet 초기화 패턴을 하나씩 정리해봅니다.
1. 기본 생성자
import java.util.HashSet;
public class HashSetInit1 {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("kim");
set.add("lee");
System.out.println(set); // [kim, lee]
}
}
설명: 가장 기본적인 방법으로 비어 있는 Set에 add()
를 통해 요소를 넣습니다.
2. 초기 용량(capacity) 지정
import java.util.HashSet;
public class HashSetInit2 {
public static void main(String[] args) {
// 예상 데이터 개수가 많을 때는 초기 용량을 지정
HashSet<Integer> set = new HashSet<>(100);
for (int i = 0; i < 5; i++) {
set.add(i);
}
System.out.println(set); // [0, 1, 2, 3, 4]
}
}
설명: 대량 데이터를 다룰 때는 초기 용량을 지정하면 리사이즈 비용을 줄일 수 있습니다.
3. 컬렉션으로 초기화
import java.util.*;
public class HashSetInit3 {
public static void main(String[] args) {
List<String> list = Arrays.asList("kim", "lee", "park");
HashSet<String> set = new HashSet<>(list);
System.out.println(set); // [kim, lee, park]
}
}
설명: 다른 컬렉션(List, Map의 keySet 등)을 이용해 한 번에 초기화할 수 있습니다.
4. 이중 중괄호 초기화 (구버전 스타일)
import java.util.HashSet;
public class HashSetInit4 {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>() {{
add("kim");
add("lee");
}};
System.out.println(set); // [kim, lee]
}
}
설명: 간단하지만 내부적으로 익명 클래스가 생성되므로 성능/메모리 측면에서 권장되지 않음.
5. Java 8+ Stream 이용
import java.util.*;
import java.util.stream.*;
public class HashSetInit5 {
public static void main(String[] args) {
HashSet<String> set = Stream.of("kim", "lee", "park")
.collect(Collectors.toCollection(HashSet::new));
System.out.println(set); // [kim, lee, park]
}
}
설명: 스트림 API를 이용하면 동적으로 데이터를 가공한 뒤 Set으로 만들 수 있습니다.
6. Java 9+ Set.of() 활용
import java.util.Set;
public class HashSetInit6 {
public static void main(String[] args) {
Set<String> set = Set.of("kim", "lee", "park");
System.out.println(set); // [kim, lee, park]
}
}
설명: Set.of()
는 불변(immutable) Set을 생성합니다. 수정이 필요하다면 new HashSet<>(Set.of(...))
로 감싸 사용하세요.
결론
- 가장 일반적:
new HashSet<>()
+add()
- 대량 데이터 예상 시: 초기 용량 지정
- 다른 컬렉션 기반:
new HashSet<>(list)
- 불변 집합 필요:
Set.of(...)
- 동적 데이터 가공: Stream + Collectors
반응형
'IT > Java' 카테고리의 다른 글
[Java LinkedHashSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.08 |
---|---|
[Java HashSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.08 |
[Java HashMap] 초기화 방법 총정리 (0) | 2025.10.07 |
[Java StringTokenizer] 주요 메소드 정리와 활용 예제 (0) | 2025.10.06 |
[Java Scanner] 주요 메소드 정리와 활용 예제 (0) | 2025.10.06 |
Comments