π컬λ μ (Collection) : μ¬λ¬ κ°μ κ°μ²΄λ₯Ό νλμ λ¨μλ‘ λ¬Άμ΄μ κ΄λ¦¬ν μ μλ ꡬ쑰
- 컬λ μ νλ μμν¬ (Collection Framework) : λ°μ΄ν°μ μ§ν©μ λ€λ£¨λ λ° νμν λ€μν μΈν°νμ΄μ€μ ν΄λμ€
- κ΅¬μ± μμ
- μΈν°νμ΄μ€ : 컬λ μ
μ κΈ°λ³Έμ μΈ λμμ μ μνλ μΈν°νμ΄μ€
- List, Set, Queue, Map λ± - ꡬν ν΄λμ€ : μΈν°νμ΄μ€λ₯Ό ꡬνν ꡬ체μ μΈ ν΄λμ€
- Listμ κ²½μ° ArrayList, LinkedList λ± - μκ³ λ¦¬μ¦ : 컬λ μ
μ μ½κ² μ‘°μν μ μλ λ©μλλ₯Ό μ 곡νλ μ νΈλ¦¬ν° ν΄λμ€
- Collection ν΄λμ€μμ μ 곡νλ μ λ ¬, κ²μ, λΉκ΅ λ±μ μκ³ λ¦¬μ¦
- μΈν°νμ΄μ€ : 컬λ μ
μ κΈ°λ³Έμ μΈ λμμ μ μνλ μΈν°νμ΄μ€
μ λ€λ¦ 컬λ μ
- νμ μμ μ± λ³΄μ₯
- μ»΄νμΌ νμμ νμ μ€λ₯ μ‘μ μ μμ
- λΆνμν νλ³ν(Casting) λ°©
π Collectionκ³Ό Genericλ₯Ό ν¨κ» μ¬μ©ν μ½λ μμ
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
// list.add(10); // μ»΄νμΌ μ€λ₯ λ°μ: μ μνμ μΆκ°ν μ μμ
: String νμ λ§μ νμ©νκΈ° λλ¬Έμ, λ€λ₯Έ νμ μ κ°μ²΄λ₯Ό μΆκ°νλ € νλ©΄ μ»΄νμΌ νμμ μ€λ₯ λ°μ.
μ£Όμ 컬λ μ ν΄λμ€μ μ λ€λ¦ μ¬μ© μμ
- Set : λΉμμ°¨μ μ μ₯(μμ μ μ§ x), μ€λ³΅ λ°μ΄ν° λΆν
π μμ μ½λ
π κ²°κ³Όimport java.util.HashSet; import java.util.Set; public class SetExample { public static void main(String[] args) { Set<String> fruits = new HashSet<>(); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Apple"); // μ€λ³΅λ κ° for (String fruit : fruits) { System.out.println(fruit); } } }
Apple Banana
- Map : λΉμμ°¨μ μ μ₯, μ€λ³΅ λ°μ΄ν° νμ©
* ν€-κ°(key-value) μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ€. ν€λ μ€λ³΅λ μ μμΌλ©°, κ° ν€λ νλμ κ°λ§μ κ°μ§λ€.
(κ°μ μ€λ³΅λ μ μλ€.)
π μμ μ½λimport java.util.HashMap; import java.util.Map; public class MapExample { public static void main(String[] args) { Map<String, Integer> fruitPrices = new HashMap<>(); fruitPrices.put("Apple", 1000); fruitPrices.put("Banana", 1500); fruitPrices.put("Apple", 1200); // λμΌν ν€μ λ€λ₯Έ κ° μΆκ° for (String key : fruitPrices.keySet()) { System.out.println(key + ": " + fruitPrices.get(key)); } } }
π κ²°κ³ΌApple: 1200 Banana: 1500
- List : μμ°¨μ μ μ₯, μ€λ³΅ λ°μ΄ν° νμ©
π μμ μ½λimport java.util.ArrayList; import java.util.List; public class GenericExample { public static void main(String[] args) { List<String> fruits = new ArrayList<>(); //Genericμ νμ©νμ¬ λ¬Έμμ΄λ§ λ΄μ μ μλString νμ μ κ°μ²΄λ§ μ μ₯νλλ‘ μ ννλ€. fruits.add("Apple"); fruits.add("Banana"); // fruits.add(123); // μ»΄νμΌ μ€λ₯: μλͺ»λ νμ μ λ°μ΄ν°λ₯Ό μΆκ°νλ €κ³ μλν¨ for (String fruit : fruits) { System.out.println(fruit); } } }
π κ²°κ³Ό
Apple Banana
μ λ€λ¦μ νμμ±
π μ λ€λ¦μ μ¬μ©νμ§ μμ 컬λ μ μμμ½λ
import java.util.ArrayList;
import java.util.List;
public class NonGenericExample {
public static void main(String[] args) {
List fruits = new ArrayList(); // μ λ€λ¦μ μ¬μ©νμ§ μμ
fruits.add("Apple");
fruits.add(123); // λ€μν νμ
μ λ°μ΄ν° μΆκ° κ°λ₯
for (Object fruit : fruits) {
String str = (String) fruit; // νμ
μΊμ€ν
νμ
System.out.println(str);
}
}
}
: ν΄λΉ μ½λ μ€ν μ fruit 리μ€νΈμ λ€μν νμ μ κ°μ²΄κ° λ΄κ²¨ ClassCastException μ€λ₯ λ°μ
→ μ λ€λ¦ μ¬μ©νμ¬ ν΄λΉ μ€λ₯ λ°©μ§ν μ μμ.
'Language > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] μΊμ€ν (Casting) (0) | 2024.09.01 |
---|---|
[JAVA] ν¨ν€μ§ (Package) (1) | 2024.08.30 |
[JAVA] μ λ€λ¦ (Generic) (4) | 2024.08.28 |
[JAVA] OCP (Open Closed Principle) κ°λ°© νμμ μμΉ (0) | 2024.08.26 |
[JAVA] λ©λͺ¨λ¦¬ μμ (0) | 2024.08.25 |