Search
Duplicate
๐Ÿ˜€

10. Generic Wildcard, Collection, lambda

ํƒœ๊ทธ
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๊ฐœ๋งŒ ์ •์˜๋œ ์ต๋ช… ๊ฐ์ฒด๋ฅผ ์‹์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ๊ธฐ๋ฒ• - ๋ฉ”์„œ๋“œ ์ž์ฒด๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ๋ฅผ ์ง€๋‹Œ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ!