Collection(1) - List, Set, Map
μλ νμΈμ,
μ΄λ²μλ μλ°μμ μλ£κ΅¬μ‘°λ₯Ό νννλ μΈν°νμ΄μ€μΈ 컬λ μ (Collection), κ·Έλ¦¬κ³ κ΅¬μ²΄μ μΈ μλ£κ΅¬μ‘°μ μ’ λ₯μΈ λ¦¬μ€νΈ(List), μ€ν(Stack) ,ν(Queue),μ (Set),맡(Map)μ κ°λ κ³Ό μμ μ½λλ₯Ό 보λλ‘ νκ² μ΅λλ€.
컬λ μ νλ μμν¬λ?
- λ€μμ λ°μ΄ν°λ₯Ό λ€λ£¨κΈ° μν μλ£κ΅¬μ‘°λ₯Ό νννκ³ μ¬μ©νλ ν΄λμ€μ μ§ν©μ μλ―Έ
- λ°μ΄ν°λ₯Ό λ€λ£¨λλ° νμν νλΆνκ³ λ€μν ν΄λμ€μ κΈ°λ³Έν¨μλ₯Ό μ 곡νμ¬ μ μ©
- 컬λ μ νλ μμν¬μ λͺ¨λ ν΄λμ€λ Collection interfaceλ₯Ό ꡬν(implement)νλ ν΄λμ€ λλ μΈν°νμ΄μ€
List
μμκ° μλ λμ΄λ λ°μ΄ν°λ₯Ό ννν©λλ€.
- Arraylistλ λ°°μ΄μ μ΄μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νλ List μΈν°νμ΄μ€μ λλ€.
//List - μμλ₯Ό μ μ§νκ³ , λ°μ΄ν°μ μ€λ³΅μ νμ©νλ€.
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(5);
integerList.add(4);
integerList.add(4);
integerList.add(11);
integerList.add(10); // ArrayListμ κ° νκ°μ© μ
λ ₯
System.out.println(integerList); // [1,5,4,4,11,10]
Collections.sort(integerList); // list μ λ ¬ - μ€λ¦μ°¨μ
System.out.println(integerList); // [1,4,4,5,10,11]
System.out.println(integerList.size()); // arrayListμ ν¬κΈ° μΆλ ₯
integerList.remove(4); // μΈλ±μ€λ₯Ό νμ©νμ¬ ν΄λΉνλ κ° μ κ±°
System.out.println(integerList);
for (int i = 0; i < integerList.size(); i++) {
System.out.println(integerList.get(i)); // getμ μ΄μ©νμ¬ κ° 1κ°μ© μΆλ ₯
}
for (int current : integerList) {
System.out.println(current);
}
μμ μ½λλ₯Ό 보μλ©΄, μμλλ‘ 1,5,4,4,11,10μ λ£μ΅λλ€. μΆλ ₯ν΄λ³΄λ©΄ 1,5,4,4,11,10 κ·Έλλ‘ μμλ₯Ό μ μ§νλ©΄μ, λ μ€λ³΅κ°μΈ 4λ νμ©λμ΄ λͺ¨λ λ€μ΄κ°λ κ²μ λ³Ό μ μμ΅λλ€. κ·Έ μΈμ λ°μ λΆλΆμ μ λ ¬, ν¬κΈ°, μ κ±°, κ° νμΈμ λν ν¨μμ¬μ© λΆλΆμ΄λ μ£Όμμ μ°Έκ³ νμ¬ λ³΄μλ©΄ λκ² μ΅λλ€ :)
Set
μμλ₯Ό μ μ§νμ§ μλ λ°μ΄ν°μ μ§ν©μ΄λ©° λ°μ΄ν°μ μ€λ³΅μ νμ©νμ§ μμ΅λλ€.
- HashSetμ Set μΈν°νμ΄μ€λ₯Ό ꡬνν λνμ μΈ μ»¬λ μ
μ
λλ€.
//Set - μμλ₯Ό μ μ§νμ§ μκ³ , λ°μ΄ν°μ μ€λ³΅μ νμ©νμ§ μλλ€.
Set<Integer> integerSet = new HashSet<>();
integerSet.add(1);
integerSet.add(1); //μ€λ³΅ μλ€μ΄κ°.
integerSet.add(3);
integerSet.add(2);
integerSet.add(9);
integerSet.add(8);
System.out.println(integerSet); //[1, 2, 3, 8, 9]
Set<String> stringSet = new HashSet<>();
stringSet.add("LA");
stringSet.add("New York");
stringSet.add("LasVegas");
stringSet.add("San Francisco");
stringSet.add("Seoul");
System.out.println(stringSet);
stringSet.remove("Seoul");
System.out.println(stringSet);
List<String> target = new ArrayList<>();
target.add("New York");
target.add("LasVegas");
stringSet.removeAll(target); //νκΊΌλ²μ μ§μ°κΈ° - setνμ
μ removeAllνκ³ , Collection νμ
μ λ£μ΄μ£Όλ©΄, κ·Έκ² μ§μμ§λ€.
System.out.println(stringSet);
System.out.println("LA ν¬ν¨λμ΄ μλμ? " + stringSet.contains("LA")); //true
System.out.println("Seoul ν¬ν¨λμ΄ μλμ? " + stringSet.contains("Seoul")); //false
System.out.println(stringSet.size());
stringSet.clear(); //λ€μ§μ°κΈ°
System.out.println(stringSet);
μμ μ½λμμ 보μμΌ ν κ²μ, 1,1,3,2,9,8 μ΄λΌλ μ«μλ₯Ό λ£μμλ, μ€λ³΅μ«μμΈ 1μ νλ²λ§ λ€μ΄κ°κ³ λ£μ μ«μμ μμλλ‘ λμ€μ§ μλ λ€λ κ²μ λλ€. κ·Έ μλ λΆλΆμ λΆλΆμ κ±°, μ¬λ¬κ° νκΊΌλ²μ μ κ±°, κ° ν¬ν¨μ¬λΆ νμΈ, λͺ¨λ μ κ±°μ λν ν¨μ μ¬μ©μ λλ€. μ£Όμμ μ°Έκ³ νμ¬ νμΈν΄μ£ΌμΈμ :)
Map
- HashMapμ ν€(key)μ κ°(value)μ νλμ λ°μ΄ν°λ‘ μ μ₯νλ νΉμ§μ κ°μ§λλ€. μ΄λ₯Ό ν΅νμ¬ ν΄μ±(hashing)μ κ°λ₯νκ² νμ¬ λ°μ΄ν°λ₯Ό κ²μνλλ° λ°μ΄λ μ±λ₯μ 보μ λλ€.
//Map --> Key, Valueλ₯Ό κ°μ§λ€.
Map<Integer, String> map = new HashMap<>();
map.put(1, "apple");
map.put(2, "berry");
map.put(3, "cherry");
System.out.println(map);
System.out.println("1st in map: " + map.get(1)); //1μ΄λΌλ keyμ λν κ°μ κ°μ Έμ€κΈ°
map.remove(2); //λΆλΆ μ κ±°
System.out.println(map);
System.out.println(map.containsKey(2)); //ν€ ν¬ν¨μ¬λΆ
System.out.println(map.containsValue("cherry")); //κ° ν¬ν¨μ¬λΆ
map.clear(); //λͺ¨λ μ κ±°
System.out.println(map);
μμ μ½λλ₯Ό 보μλ©΄, Integer(Keyνμ ), String(Valueνμ )μΌλ‘ Keyμ Valueμ νμ μ μ§μ ν λ€, λ€λ₯Έ κ²κ³Όλ λ€λ₯΄κ² putμ μ΄μ©νμ¬ (key, value)λ₯Ό λ£μ΄μ£Όκ³ μμ΅λλ€. κ°μ κΊΌλ΄κ³ μΆμλλ get(keyκ°)μ ν΅ν΄μ κ°μ Έμ€κ³ μλ€μ. κ·Έ μλμλ μ κ±°, keyμ valueμ ν¬ν¨μ¬λΆ, μΌκ΄μ κ±°μ λν ν¨μμ λλ€.
μ 리
Collection μ λͺ¨λ μλ£κ΅¬μ‘°κ° ꡬν(implement)νλ μΈν°νμ΄μ€μ λλ€. μ€λ λ°°μ΄ λͺ¨λ μλ£κ΅¬μ‘°μ ν΄λΉνλ ν΄λμ€, μΈν°νμ΄μ€λ μΈμ λ Collection μΈν°νμ΄μ€λ₯Ό ꡬννκ³ μμ΅λλ€.
List : μμκ° μλ λ°μ΄ν°μ μ§ν©μ΄λ©° λ°μ΄ν°μ μ€λ³΅μ νμ©ν©λλ€.
→ ArrayList, LinkedList, Stack λ±
Set : μμλ₯Ό μ μ§νμ§ μλ λ°μ΄ν°μ μ§ν©μ΄λ©° λ°μ΄ν°μ μ€λ³΅μ νμ©νμ§ μμ΅λλ€.
→ HashSet, TreeSet λ±
Map : ν€(key)μ κ°(value)μ μμΌλ‘ μ΄λ£¨μ΄μ§ λ°μ΄ν°μ μ§ν©μ λλ€. μμλ μ μ§λμ§ μμΌλ©° ν€λ μ€λ³΅μ νμ©λμ§ μκ³ κ°μ μ€λ³΅μ νμ©ν©λλ€.
→ HashMap, TreeMap λ±
컬λ μ
μΈν°νμ΄μ€μλ 컬λ μ
ν΄λμ€μ μ μ₯λ λ°μ΄ν°λ₯Ό μ½κ³ , μΆκ°νκ³ μμ νλ λ± λ°μ΄ν°λ₯Ό λ€λ£¨λλ° κΈ°λ³Έμ μΈ λ©μλλ€μ μ μνκ³ μμ΅λλ€.
λ€μ κΈμ μ΄μ΄μ μ€νκ³Ό νμ λν΄ μμλ³΄κ² μ΅λλ€ :)