π μμ© 2μ₯ : 컬λ μ
λ°μ΄ν° ꡬ쑰μ λ°λ₯Έ λνμ μΈ μ»¬λ μ (μλ£κ΅¬μ‘°)
List
: μμ λλ‘ μμ¬μλ ꡬ쑰 (μμ΄ν μ μ€λ³΅ νμ©)
Map
: ν€(Key), κ°(Value)μ μμΌλ‘ μ μ₯ (Keyμ μ€λ³΅ λΆκ°)
Set
: μμκ° μλ μ§ν© (μ€λ³΅ λΆκ°)
λ°°μ΄κ³Ό ArrayList λΉκ΅
Generic
μ λ€λ¦μ΄λ?
μ λ€λ¦μ ν΄λμ€λ λ©μλμμ μ¬μ©ν λ°μ΄ν° νμ μ 미리 μ νμ§ μκ³ , μ€μ μ¬μ©λλ μμ μ λ°μ΄ν° νμ μ κ²°μ νλ λ°©μμ΄λ€.
μ¬μ© λ°©λ²
μ λ€λ¦μ μ¬μ©νλ €λ©΄ ν΄λμ€λ λ©μλμ μ μΈλΆμ μ λ€λ¦ νμ λ§€κ°λ³μλ₯Ό μΆκ°ν΄μΌ ν©λλ€. μ λ€λ¦ νμ λ§€κ°λ³μλ λ³΄ν΅ λλ¬Έμ μνλ²³ ν κΈμλ‘ νκΈ°ν©λλ€.
public class GenericClass<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
μ μ½λλ μ λ€λ¦μ μ¬μ©ν ν΄λμ€μ μμμ
λλ€. Tλ μ λ€λ¦ νμ
λ§€κ°λ³μλ‘, μ΄ ν΄λμ€λ₯Ό μ¬μ©ν λ μ€μ νμ
μΌλ‘ λ체λ©λλ€. μλ₯Ό λ€μ΄, GenericClass<String>
κ³Ό κ°μ΄ μ¬μ©νλ©΄ Tλ StringμΌλ‘ λ체λμ΄ λμν©λλ€.
μ λ€λ¦ λ©μλ
μ λ€λ¦μ ν΄λμ€λΏλ§ μλλΌ λ©μλμμλ μ¬μ©ν μ μμ΅λλ€. λ©μλμμ μ λ€λ¦μ μ¬μ©νλ©΄, λ©μλλ₯Ό νΈμΆν λλ§λ€ μ λ€λ¦ νμ μ λͺ μν νμκ° μμ΅λλ€.
public class GenericMethod {
public static <T> void printArray(T[] arr) {
for (T t : arr) {
System.out.println(t);
}
}
}
컬λ μ μμ κΈ°λ³Έν μ·¨κΈ λΆκ°
wrapper ν΄λμ€
Wrapper ν΄λμ€λ κΈ°λ³Έ μλ£ν(primitive data type)μ κ°μ κ°μ²΄λ‘ κ°μΈλ ν΄λμ€λ₯Ό λ§ν©λλ€.
κ°μ²΄νλ κ°μ λν΄ λ€μν λ©μλλ₯Ό νΈμΆνμ¬ μ¬μ©ν μ μλλ‘ ν΄μ€λλ€.
κ°μ²΄μ κ°μ²΄ κ°μ λΉκ΅λ₯Ό κ°λ₯νκ² ν΄μ€λλ€.
null κ°μ ννν μ μμ΅λλ€.
κΈ°λ³Έ μλ£ν κ°μ λ°ννλ λ©μλμμ Wrapper ν΄λμ€λ₯Ό λ°νν κ²½μ°, μλμΌλ‘ κΈ°λ³Έ μλ£ν κ°μΌλ‘ λ³νλ©λλ€.
λ°°μ΄κ³Ό ArrayList νμ λ°©λ² λΉκ΅
μΌλ° forλ¬Έ


for - each문


Iterator
- hasNext(): λ€μ μμκ° μ‘΄μ¬νλμ§ νμΈν©λλ€. μμκ° μλ€λ©΄ true λ°ν
- next(): λ€μ μμλ₯Ό λ°ν
- remove(): 컬λ μ μμ νμ¬ μμλ₯Ό μ κ±°
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String fruit = iter.next();
System.out.println(fruit);
}
LinkedList

Javaμμ μ 곡νλ Collection μ’ λ₯

HashSet

get()
λ©μλλ μ 곡νμ§ μλλ€.
β λ°λ³΅μ΄ νμνλ©΄, Iteratorλ₯Ό μ¬μ©νκ±°λ, for eachλ₯Ό μ¬μ©ν΄μΌ νλ€.
HashMap

ν€(key)
: κ°(value)
μμΌλ‘ μ΄λ£¨μ΄μ§ μμλ₯Ό λ΄λ μλ£κ΅¬μ‘°
Keyμ μ€λ³΅μ νμ©λμ§ μλλ€!
νμμλκ° λ§€μ° λΉ λ₯΄λ€.
HashMapμ μ μ₯λ κ°μ νλμ© μ»κΈ°

컬λ μ μ μμ©
컬λ μ μμ 컬λ μ
Map<String, List<String>>
List<List<Hero>>
βμμμ μ°Έμ‘°
public class Hero {
String name;
}
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Hero hero = new Hero(); // hero reference type κ°μ²΄ μμ±
hero.name = "νκΈΈλ"; // ν΄λΉ κ°μ²΄ μ΄λ¦ μμ± μ€μ
List<Hero> heroList = new ArrayList<>();
heroList.add(hero); // 리μ€νΈλ₯Ό λ§λ€μ΄μ hero κ°μ²΄ μ½μ
hero.name = "νμλ΄"; // ν΄λΉ κ°μ²΄ μμ± κ° μμ
System.out.println(heroList.get(0).name);
// reference typeμ΄κΈ° λλ¬Έμ μμ λ κ° μΆλ ₯λ¨.
}
}
컬λ μ μ ν

πμ°μ΅ λ¬Έμ
2-1

2-2

package Exam03;
public class Person {
String name;
}
package Exam02;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Person person1 = new Person();
person1.name = "νκΈΈλ";
Person person2 = new Person();
person2.name = "νμλ΄";
ArrayList <Person> personList = new ArrayList<>();
personList.add(person1);
personList.add(person2);
for(Person person : personList) {
System.out.println(person.name);
}
}
}
2-3

package Exam03;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Person person1 = new Person();
person1.name = "νκΈΈλ";
Person person2 = new Person();
person2.name = "νμλ΄";
HashMap<Person, Integer> personHashMap = new HashMap<Person, Integer>();
personHashMap.put(person1, 20);
personHashMap.put(person2, 25);
for(Person person : personHashMap.keySet()) {
int age = personHashMap.get(person);
System.out.println(person.name + "μ λμ΄λ " + age + "μ΄");
}
}
}
Uploaded by N2T