Generic WildCard
WildCard
- Generic ํํ์ด ์๋ก ๋ค๋ฅธ ์ ๋ค์ ํ๋ฒ์ ํํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ (์๋ก ๋ค๋ฅธ ํ์
)
ArrayList <Animal> โ ArrayList<Dog>
โ ArrayList<Cat>
ArrayList์ ๊ฒฝ์ฐ ๋คํ์ฑ์ด ์๋๋ผ ArrayList ์์ฒด๊ฐ ๋ค๋ฅธ ๊ฒ์ด๋ผ ๋ถ๊ฐ๋ฅํ๋ค!
โ ๊ทธ๋ ๋ค๋ฉด ์๋ก ๋ค๋ฅธ type์ ArrayList๋ฅผ ๋ฃ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ??
โ WildCard ์ฌ์ฉ! (Generic type์ ์๊ด์์ด ๋ชจ๋ ๊ฒ์ ๋ฐ์์ค ์ ์๋ค)
ArrayList<?> , ArrayList< ? extends A>, ArrayList<? super B>
WildCard ์ฌ์ฉ๋ฒ
ArrayList<?>
- ๋ชจ๋ Generic Type์ ์ ๋ถ ๋ฐ์์ค ์ ์๋ค
ใด ๊ฐ์ฅ ์ต์์ Type์ธ Object์ ์์ฑ๋ฐ์ ์ฌ์ฉ ๋ถ๊ฐ
ArrayList<? extends A>
- A๋ฅผ ํฌํจํ ๋ชจ๋ ์์ Class๋ฅผ ๋ฐ์ ์ ์๋ค.
- ์ํ ์ง์
ArrayList<? super B>
- B๋ฅผ ํฌํจํ B์ ๋ชจ๋ ์์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ ์ ์๋ค.
- ํํ ์ง์
Ex) Calcurate(ArrayList<? extends Number> list)
ใด ์ซ์๋ฅผ ๊บผ๋ด์ ๋ํ๋ ํจ์
ใด ArrayList<Integer> ์ฒ๋ผ ํน์ Generic ํ์
์ง์ ์ด ์๋ Number์ ๋ชจ๋ class ์ฌ์ฉ
Collection Framework
Java.util ํจํค์ง
- ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณต
ใด DB์ฒ๋ผ CRUD ๊ธฐ๋ฅ ์ค์
ArrayList vs LinkedList
- ์๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ : ํฐ ์ฐจ์ด X
- ์ ์ ์ธ ๋ฐ์ดํฐ ํ์ฉ, ๋จ์ data ์กฐํ : ArrayList
- ๋์ ์ธ ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ๊ฐ ๋ง์ ์์
: LinkedList
lambda
- ๋ฉ์๋๊ฐ 1๊ฐ๋ง ์ ์๋ ์ต๋ช
๊ฐ์ฒด๋ฅผ ์์ผ๋ก ์ ์ํ ์ ์๋ ํ๊ธฐ๋ฒ
- ๋ฉ์๋ ์์ฒด๋ฅผ ๋๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฉ์๋๋ฅผ ์ง๋ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๋ ๊ฒ!