public class ObjectBox {
private Object object;
public void set(Object obj) {
this.object = object;
}
public Object get() {
return this.object;
}
}
Object์ ํ์์ ๋ค ๊บผ๋ผ์ ์๋ค. ๋จ, ๊บผ๋ผ ๋ ์๋ ํ์
์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋ค.
import javax.swing.*;
public class ObjectBoxMain {
public static void main(String[] args) {
ObjectBox box = new ObjectBox();
box.set("kim");
String str = (String)box.get(); //๋ฌธ์์ด๊ฐ์ฒด๋ฅผ ๋ฃ์ด์คฌ๊ธฐ ๋๋ฌธ์ ๊บผ๋ผ๋๋ String ํ์
์ผ๋ก ํ๋ณํ
System.out.println(str.toUpperCase());
Integer i = (Integer)box.get(); //์ ์๊ฐ์ฒด๋ฅผ ๋ฃ์ด์คฌ๊ธฐ ๋๋ฌธ์ ๊บผ๋ผ๋๋ ์ ์๋ก ํ๋ณํํด์ ๊บผ๋
System.out.println(i.intValue());
}
}
์ ๋๋ฆญ
C++์ ํ ํ๋ฆฟ๊ณผ ๊ฐ์ ์ฉ๋์ด๋ค.
public class GenericBox<T> {
private T t;
public void add(T obj){
this.t = obj;
}
public T get(){
return this.t;
}
}
import java.security.CodeSigner;
public class GenericBoxMain {
public static void main(String[] args) {
GenericBox<String> genericBox = new GenericBox<>();
genericBox.add("kim");
String str = genericBox.get();
System.out.println(str.toUpperCase());
GenericBox<Integer> intBox = new GenericBox<>();
genericBox.add(new Integer(5));//์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
Integer intValue = intBox.get();
System.out.println(intValue );
GenericBox<Object> objBox = new GenericBox<>();
objBox.add("hello");
String str2 = (String)objBox.get();
System.out.println(str2);
}
}
์ ๋๋ฆญ์ ์ฅ์
์ ํด์ง ํ์ ๋ง ์ฌ์ฉํ๋๋ก ๊ฐ์ ํ ์ ์๋ค.
ํ์ ์ ๊ฐ์ ํจ์ผ๋ก์จ ์ปดํ์ผ ํ ๋ ์๋ชป๋ ํ์ ์ ๊ฐ์ด ์ ์ฅ๋๋ ๊ฒ์ ๋ง์ ์ ์๋ค.
ํ๋ณํ์ ํ ํ์๊ฐ ์๋ค.
์ปฌ๋ ์ ํ๋ ์์ํฌ(Collection Framework)
์๋ฃ๊ตฌ์กฐ ํด๋์ค ํจํค์ง๋ก, ์๋ฃ๋ฅผ ๋ค๋ฃฐ ๋ ๋ฐ๋์ ํ์ํ ํด๋์ค์ ๋ชจ์
์ ์ ํ์ดํ: ์์กดํ๋ค. Collection ์ธํฐํ์ด์ค๋ Iterator ์ธํฐํ์ด์ค์ ์์กดํ๋ค.
์ค์ ํ์ดํ: ์์. List,Set ์ธํฐํ์ด์ค๋ Collection ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๋๋ค.
์ปฌ๋ ์ ์ ์์๊ฐ ์๋ ๋ฐ๊ตฌ๋!!
๋๊ฐ์ง ๊ธฐ๋ฅ์ด ํ์ํ๋ค. : ๊บผ๋ผ๊ฒ ์๋์ง ํ๋จ ๊ธฐ๋ฅ + ๊บผ๋ด๋ ๊ธฐ๋ฅ
Iterator() ๋ฉ์๋: ๊บผ๋ด๋ ๊ธฐ๋ฅ ํํ ๋ฉ์๋
hasNext(): ๊บผ๋ผ๊ฒ ์๋์ง ํ๋จํ๋ ๋ฉ์๋ / next(): ๊บผ๋ด๋ ๋ฉ์๋
List์ธํฐํ์ด์ค๋ Collection์ ์์๋ฐ์ผ๋ฏ๋ก add(),iterator(),size() + get()๋ฉ์๋๋ฅผ ๋ค ๊ฐ์ง๊ณ ์๋ค.
List์ธํฐํ์ด์ค๋ ์์๋ฅผ ๊ธฐ์ตํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
๊บผ๋ผ ๋ get()์ผ๋ก ์์๋ฅผ ๋ฐ๋๋ค.
Set์ธํฐํ์ด์ค๋ ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฆ, ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๊ฐ๋ง ์ ์ฅํ๋ค.
Map์ธํฐํ์ด์ค๋ key, value๋ก ๊ตฌ์ฑ๋๋ค.
๋ฃ์ ๋๋ put(key,value)๊ฐ ์ ์ฅ๋๊ณ , ๋บ ๋๋ get(key)๋ก ๋บ๋ค. key์ ํด๋นํ๋ ๊ฐ์ด ์๋ค๋ฉด null์ด ๋์จ๋ค.
keySet()๋ key๋ค๋ง ๋ค์ด์๋ Set ์ด๋ค.๋ฐ๋ผ์ ํค๋ฅผ ๊บผ๋ผ ๋๋ Set -> Collection์ Iterator๋ก ๊บผ๋ด๊ฒ ๋๋ค.
List ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ํ์ ์ธ ํด๋์ค๋ ArrayList
Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ํ์ ์ธ ํด๋์ค๋ HashSet
Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ํ์ ์ธ ํด๋์ค๋ HashMap
'๐ผ๋ฐฑ์ค๋ > Java ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java I/O (0) | 2023.08.24 |
---|---|
์ฃผ์๋ฌธ, ์์ธ์ฒ๋ฆฌ, enum (0) | 2023.08.23 |
๋ฐฐ์ด 2/2 (0) | 2023.08.22 |
๋ฐฐ์ด 1/2 (0) | 2023.08.22 |
๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ 3/3 (0) | 2023.08.21 |