[Java] Collection | List | Set | Map

JTIยท2022๋…„ 12์›” 4์ผ
0

โ˜•๏ธย  Java

๋ชฉ๋ก ๋ณด๊ธฐ
37/59
post-thumbnail

๐Ÿ’ก Collection framework


โœ”๏ธ Collection framework
: ์ปฌ๋ ‰์…˜(๋‹ค์ˆ˜์˜ ๊ฐ์ฒด)์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹
: ์ปฌ๋ ‰์…˜์„ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณต (์ €์žฅ, ์‚ญ์ œ, ๊ฒ€์ƒ‰, ์ •๋ ฌ ๊ธฐ๋Šฅ)
: java.util ํŒจํ‚ค์ง€์— ํฌํ•จ

  • Collection: ์—ฌ๋Ÿฌ ๊ฐ์ฒด(๋ฐ์ดํ„ฐ)๋ฅผ ๋ชจ์•„ ๋†“์€ ๊ฒƒ์„ ์˜๋ฏธ
  • framework: ํ‘œ์ค€ํ™”, ์ •ํ˜•ํ™”๋œ ์ฒด๊ณ„์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹

์ž๋ฐ”์—์„œ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(collection framework)๋ž€ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•ด ๋†“์€ ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฌํ•œ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ž๋ฐ”์˜ ์ธํ„ฐํŽ˜์ด์Šค(interface)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋œ๋‹ค.

โœ”๏ธ Collection class

  • ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค
  • Vector / ArrayList / HashSet ...

๐Ÿ’ก Collection ํ•ต์‹ฌ ์ธํ„ฐํŽ˜์ด์Šค


โ—๏ธ List์™€ Set์˜ ๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„๋งŒ ๋ฝ‘์•„์„œ Collection์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

๐Ÿ“Ž List

  • ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ.
  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค.
  • ๋Œ€๊ธฐ์ž ๋ช…๋‹จ

    ArrayList, LinkedList, Stack, Vector ...

โ—๏ธList ๋ฉ”์„œ๋“œ

๐Ÿ“Ž Set

  • ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ.
  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์–‘์˜ ์ •์ˆ˜์ง‘ํ•ฉ, ์†Œ์ˆ˜์˜ ์ง‘ํ•ฉ

    HashSet, TreeSet ...

โ—๏ธ Set์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ - Collection์ธํ„ฐํŽ˜์ด์Šค์™€ ๋™์ผ

โ—๏ธ ์ง‘ํ•ฉ๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ

  • (Collection์— ๋ณ€ํ™”๊ฐ€ ์žˆ์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜)

๐Ÿ“Ž Map

  • LinkedHashMap์€ ์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค.
  • ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ์Œ(pair)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ ์ˆœ์„œ๋Š” ์œ ์ง€๋˜์ง€ ์•Š์œผ๋ฉฐ, ํ‚ค๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ๊ฐ’์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค.
  • ์šฐํŽธ๋ฒˆํ˜ธ, ์ง€์—ญ๋ฒˆํ˜ธ(์ „ํ™”๋ฒˆํ˜ธ)

    HashMap, TreeMap, Hashable, Properties ...

โ—๏ธ Map ๋ฉ”์„œ๋“œ

๐Ÿ’ก Collection ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ


โœ๏ธ int size()

  • Collection์— ์ €์žฅ๋œ ๊ฐ์ฒด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โœ๏ธ Object[] toArray()

  • Collection์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ๊ฐ์ฒด๋ฐฐ์—ด(Object[])๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โœ๏ธ Object[] toArray(Object a)

  • ์ง€์ •๋œ ๋ฐฐ์—ด์— Collection์˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ“Ž ์ถ”๊ฐ€

โœ๏ธ boolean add(Object o) / boolean addAll(Collection c)

  • ์ง€์ •๋œ ๊ฐ์ฒด(o) ๋˜๋Š” Collection(c)์˜ ๊ฐ์ฒด๋“ค์„ Collection์— ์ถ”๊ฐ€ํ•œ๋‹ค.

๐Ÿ“Ž ๊ฒ€์ƒ‰

โœ๏ธ boolean contains(Object o) / boolean containsAll(Collection c)

  • ์ง€์ •๋œ ๊ฐ์ฒด(o) ๋˜๋Š” Collection(c)์˜ ๊ฐ์ฒด๋“ค์„ Collection์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

โœ๏ธ boolean isEmpty()

  • Collection์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

โœ๏ธ lterator iterator()

  • Collection์˜ lterator๋ฅผ ์–ป์–ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ“Ž ์‚ญ์ œ

โœ๏ธ void clear()

  • Collection์˜ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

โœ๏ธ boolean remove / removeAll()

  • ์ง€์ •๋œ Collection์— ํฌํ•จ๋œ ๊ฐ์ฒด๋“ค์„ ์‚ญ์ œํ•œ๋‹ค.

โœ๏ธ boolen retainAll(C)

  • ์ง€์ •๋œ Collection์— ํฌํ•จ๋œ ๊ฐ์ฒด๋งŒ์„ ๋‚จ๊ธฐ๊ณ  ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์€ Collection์—์„œ ์‚ญ์ œํ•œ๋‹ค.
  • ์ด ์ž‘์—…์œผ๋กœ ์ธํ•ด Collection์— ๋ณ€ํ™”๊ฐ€ ์žˆ์œผ๋ฉด true๋ฅผ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

References
: https://cafe.naver.com/javachobostudy
: https://techvidvan.com/tutorials/java-collection-framework/

profile
Fill in my own colorful colors๐ŸŽจ

0๊ฐœ์˜ ๋Œ“๊ธ€