반응형
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
- string
- json
- CSS
- 이탈리아
- list
- CMD
- javascript
- replace
- vscode
- Button
- 이클립스
- input
- 정규식
- Eclipse
- html
- 문자열
- 자바스크립트
- Java
- js
- 인텔리제이
- 자바
- Visual Studio Code
- date
- ArrayList
- table
- 배열
- HashMap
- Array
- IntelliJ
- map
Archives
- Today
- Total
어제 오늘 내일
[Java LinkedHashSet] 주요 메소드 정리 및 활용 예제 본문
LinkedHashSet
은 HashSet
을 상속받은 클래스지만 내부적으로 이중 연결 리스트(doubly-linked list) 를 사용해 삽입 순서를 유지한다는 차이가 있습니다. 중복을 허용하지 않으면서도 저장 순서를 보장해야 할 때 유용합니다.
1. add()
import java.util.LinkedHashSet;
public class LinkedHashSetAdd {
public static void main(String[] args) {
LinkedHashSet<String> set = new LinkedHashSet<>();
set.add("kim");
set.add("lee");
set.add("park");
set.add("kim"); // 중복 삽입 시 무시
System.out.println(set); // [kim, lee, park]
}
}
중복은 허용하지 않고, 입력한 순서대로 저장됩니다.
2. remove()
import java.util.LinkedHashSet;
public class LinkedHashSetRemove {
public static void main(String[] args) {
LinkedHashSet<Integer> set = new LinkedHashSet<>();
set.add(1);
set.add(2);
set.add(3);
boolean removed = set.remove(2);
System.out.println(removed); // true
System.out.println(set); // [1, 3]
}
}
요소가 있으면 삭제 후 true, 없으면 false를 반환합니다.
3. contains()
import java.util.LinkedHashSet;
public class LinkedHashSetContains {
public static void main(String[] args) {
LinkedHashSet<String> set = new LinkedHashSet<>();
set.add("kim");
set.add("lee");
System.out.println(set.contains("kim")); // true
System.out.println(set.contains("park")); // false
}
}
요소 존재 여부를 빠르게 확인할 수 있습니다.
4. size(), isEmpty()
import java.util.LinkedHashSet;
public class LinkedHashSetSizeEmpty {
public static void main(String[] args) {
LinkedHashSet<String> set = new LinkedHashSet<>();
System.out.println(set.isEmpty()); // true
set.add("kim");
set.add("lee");
System.out.println(set.size()); // 2
System.out.println(set.isEmpty()); // false
}
}
저장된 요소 개수와 비어 있는지 여부를 확인합니다.
5. clear()
import java.util.LinkedHashSet;
public class LinkedHashSetClear {
public static void main(String[] args) {
LinkedHashSet<String> set = new LinkedHashSet<>();
set.add("kim");
set.add("lee");
set.clear();
System.out.println(set); // []
}
}
모든 요소를 한 번에 제거합니다.
6. 반복 (for-each, Iterator)
import java.util.*;
public class LinkedHashSetIteration {
public static void main(String[] args) {
LinkedHashSet<String> set = new LinkedHashSet<>();
set.add("kim");
set.add("lee");
set.add("park");
// for-each
for (String name : set) {
System.out.print(name + " ");
}
System.out.println();
// Iterator
Iterator<String> it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
삽입 순서대로 순회할 수 있는 것이 HashSet
과의 가장 큰 차이점입니다.
결론
LinkedHashSet
은HashSet
과 동일한 API를 가지지만 삽입 순서를 보장한다는 특징이 있음- 중복 없는 집합 + 순서 유지가 필요할 때 적합
- 주요 메소드:
add
,remove
,contains
,size
,isEmpty
,clear
, 반복(for-each, Iterator)
반응형
'IT > Java' 카테고리의 다른 글
[Java 컬렉션] HashMap vs HashSet vs TreeSet 비교 (0) | 2025.10.09 |
---|---|
[Java TreeSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.09 |
[Java HashSet] 주요 메소드 정리 및 활용 예제 (0) | 2025.10.08 |
[Java HashSet] 초기화 방법 총정리 (0) | 2025.10.07 |
[Java HashMap] 초기화 방법 총정리 (0) | 2025.10.07 |
Comments