-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathKeyset.java
More file actions
40 lines (31 loc) Β· 1.32 KB
/
Copy pathKeyset.java
File metadata and controls
40 lines (31 loc) Β· 1.32 KB
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
32
33
34
35
36
37
38
39
40
package Chapter2.Day6;
import java.util.*;
public class Keyset {
public static void main(String[] args) {
Object key = new Object();
Object value = new Object();
Map<Object, Object> test = new HashMap<Object, Object>();
test.put(key, value);
Set<Object> keys = test.keySet();
Set<Object> keys2 = test.keySet();
System.out.println(keys.size());
System.out.println(keys2.size());
/**
* keyset() μ map μ λν key λ€μ λ°ννλ€.
* νμ§λ§ μ¬λ¬λ² λ©μλλ₯Ό νΈμΆνλ€κ³ μλ‘μ΄ κ°μ²΄λ₯Ό λ°ννλ κ²μ΄ μλ,
* νλμ κ°μ²΄ μ°Έμ‘° (μ±κΈν΄κ°μ΄) λ₯Ό λ°ννλ€.
*
* λ°λΌμ μλμ κ°μ΄ ν κ°μ²΄λ§ remove ν΄μ€λ keyset() μΌλ‘ λ§λ λͺ¨λ κ°μ²΄κ° μν₯μ λ°λλ€.
*/
test.remove(key);
System.out.println(keys.size());
System.out.println(keys2.size());
/**
* λ°λΌμ keyset() λ‘ μμ±νλ κ°μ²΄λ μ¬λ¬κ°λ λΆνμνλ©°, νλλ§ μμ±ν΄μΌ νλ€.
*
* λν μνμ λ°©μ§νκΈ° μν΄
* μ΄λν° ν¨ν΄, κ°μ²΄ ν¬μ₯, λ°©μ΄μ λ³΅μ¬ λ₯Ό μ΄μ©ν μ μλ€.
* λ°©μ΄μ λ³΅μ¬ : https://johngrib.github.io/wiki/defensive-copy.md/
*/
}
}