๋ฐ์ํ
Set์ ๋ฐฐ์ด์ ์ค๋ณต์ ๊ฑฐํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
Set์ ์ถ๊ฐํ๋ ค๋ฉด addํ๋ฉด ๋๋ค.
| ๊ตฌ๋ถ | HashSet | LinkedHashSet | TreeSet |
| ์ค๋ณต ์ ๊ฑฐ | โ ๊ฐ๋ฅ | โ ๊ฐ๋ฅ | โ ๊ฐ๋ฅ |
| ์ ๋ ฌ ์์ ์ ์ง | โ ์์ ์์ (๋ฌด์์) | โ ์ ๋ ฅํ ์์ ์ ์ง | โ ์ค๋ฆ์ฐจ์ |
| ์๋ | O(1)๋ก ๋ณดํต ๋ ๋น ๋ฆ | O(1)๋ก ์ฝ๊ฐ ๋๋ฆผ (์์ ์ ์ง ์ค๋ฒํค๋) | O(log N) (์ด์ง ํธ๋ฆฌ ๊ธฐ๋ฐ) |
| ์ฌ์ฉ ๋ชฉ์ | ์์ ์๊ด์๋ ์ค๋ณต ์ ๊ฑฐ | ์ค๋ณต ์ ๊ฑฐ + ์ ๋ ฅ ์์ ์ ์ง ํ์ ์ | ์ ๋ ฌ๋ ์งํฉ์ด ํ์ํ ๋ (์: ์์, ์ ๋ ฌ ์ถ๋ ฅ) |
์ค๋ณต์ ๊ฑฐ (์์ํ์)์์:
import java.util.*;
String[] arr = {"apple", "banana", "apple", "orange", "banana"};
Set<String> set = new LinkedHashSet<>(Arrays.asList(arr));
for (String s : set) {
System.out.println(s);
}
๊ต์งํฉ ์์ ์ฐพ๋ ๋ฌธ์ (์์ํ์์์):
import java.util.*;
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {3, 4, 5, 6, 7};
Set<Integer> set = new HashSet<>();
for (int num : arr1) {
set.add(num);
}
for (int num : arr2) {
if (set.contains(num)) {
System.out.print(num + " ");
}
}
๊ต์งํฉ ๋ด์ฅ ๋ฉ์๋ retainAll():
package ex;
import java.util.Arrays;
import java.util.HashSet;
public class ex01 {
// static Scanner sc = new Scanner(System.in);
public static void main(String[] args) throws Exception {
HashSet<Integer> arr1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
HashSet<Integer> arr2 = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7));
HashSet<Integer> result = new HashSet<>(arr1);
result.retainAll(arr2);
System.out.println(result);
}
}
ํฉ์งํฉ์ addAll(ํ๊บผ๋ฒ์ ์ถ๊ฐ) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. //add๋ ํ๋์ฉ์ถ๊ฐ
์ฐจ์งํฉ์ removeAll(ํ๊บผ๋ฒ์ ์ญ์ ) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. //remove๋ ์์ ์ญ์
๋ฐ์ํ
'์ธ์ด > java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [java] ์ด๊ฑฐํ ํ์ enum (0) | 2025.09.06 |
|---|---|
| [java] Map-HashMap, LinkedHashMap, TreeMap (0) | 2025.05.02 |
| [java] for, for each๋ฌธ (0) | 2025.05.02 |
| [java] switch/case ๋ฌธ (0) | 2025.05.02 |
| [java] ์ดํด๋ฆฝ์ค ๋จ์ถํค ๋ชจ์ (0) | 2025.05.02 |