BackEnd๐Ÿงต

2023.05.02 TIL (์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ)

hae02y 2023. 5. 3. 21:11
๋ฐ˜์‘ํ˜•

๐Ÿ‘€Today...


 

 

 

โ˜•์˜ค๋Š˜์˜ TIL(Today I Learn)


์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

 

๊ธฐ๋Šฅ ๋ฆฌํ„ด ํƒ€์ž… ๋ฉ”์„œ๋“œ ์„ค๋ช…
๊ฐ์ฒด ์ถ”๊ฐ€ boolean add(Object o) /
addAll(Collection c)
์ฃผ์–ด์ง„ ๊ฐ์ฒด ๋ฐ ์ปฌ๋ ‰์…˜์˜ ๊ฐ์ฒด๋“ค์„ ์ปฌ๋ ‰์…˜์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ๊ฒ€์ƒ‰ boolean contains(Object o) / containsAll(Collection c) ์ฃผ์–ด์ง„ ๊ฐ์ฒด ๋ฐ ์ปฌ๋ ‰์…˜์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  Iterator iterator() ์ปฌ๋ ‰์…˜์˜ iterator๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  boolean equals(Object o) ์ปฌ๋ ‰์…˜์ด ๋™์ผํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  boolean isEmpty() ์ปฌ๋ ‰์…˜์ด ๋น„์–ด์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  int size() ์ €์žฅ๋œ ์ „์ฒด ๊ฐ์ฒด ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ์‚ญ์ œ void clear() ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋œ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  boolean remove(Object o) / removeAll(Collection c) ์ฃผ์–ด์ง„ ๊ฐ์ฒด ๋ฐ ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•˜๊ณ  ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  boolean retainAll(Collection c) ์ฃผ์–ด์ง„ ์ปฌ๋ ‰์…˜์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์ปฌ๋ ‰์…˜์—์„œ ์‚ญ์ œํ•˜๊ณ , ์ปฌ๋ ‰์…˜์— ๋ณ€ํ™”๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ๋ณ€ํ™˜ Object[] toArray() ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ๊ฐ์ฒด๋ฐฐ์—ด(Object [])๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  Object[] toArray(Object[] a) ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์— ์ปฌ๋ ‰์…˜์˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ด์„œ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

List<E>

List ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ๊ฐ์ฒด๋ฅผ ์ผ๋ ฌ๋กœ ๋Š˜์–ด๋†“์€ ๊ตฌ์กฐ์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ธ๋ฑ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜๊ณ , ์ธ๋ฑ์Šค๋กœ ๊ฐ์ฒด๋ฅผ ๊ฒ€์ƒ‰, ์ถ”๊ฐ€, ์‚ญ์ œ ํ• ์ˆ˜์žˆ๋Š”๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

๊ธฐ๋Šฅ ๋ฆฌํ„ดํƒ€์ž… ๋ฉ”์„œ๋“œ ์„ค๋ช…
๊ฐ์ฒด ์ถ”๊ฐ€ void add(int index, Object element) ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€
  boolean addAll(int index, Collection c) ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ์ปฌ๋ ‰์…˜์„ ์ถ”๊ฐ€
  Object set(int index, Object element) ์ฃผ์–ด์ง„ ์œ„์น˜์— ๊ฐ์ฒด๋ฅผ ์ €์žฅ
๊ฐ์ฒด ๊ฒ€์ƒ‰ Object get(int index) ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜
  int indexOf(Object o) / lastIndexOf(Object o) ์ˆœ๋ฐฉํ–ฅ / ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰ํ•˜์—ฌ ์ฃผ์–ด์ง„ ๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜
  ListIterator listIterator() / listIterator(int index) List์˜ ๊ฐ์ฒด๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ListIterator ๋ฐ˜ํ™˜ / ์ฃผ์–ด์ง„ index๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ListIterator ๋ฐ˜ํ™˜
  List subList(int fromIndex, int toIndex) fromIndex๋ถ€ํ„ฐ toIndex์— ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜
๊ฐ์ฒด ์‚ญ์ œ Object remove(int index) ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‚ญ์ œ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜
  boolean remove(Object o) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œ
๊ฐ์ฒด ์ •๋ ฌ void sort(Comparator c) ์ฃผ์–ด์ง„ ๋น„๊ต์ž(comparator)๋กœ List๋ฅผ ์ •๋ ฌ

List๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ๋Š” ArrayList, Vector, LinkedList, Stack ๋“ฑ์ด ์žˆ๋‹ค. 

์ฐธ์กฐ - https://docs.oracle.com/javase/8/docs/api/java/util/List.html

 

ArrayList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

1. ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ

2. ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ

 

 

LinkedList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

1. ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ฐ„์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ

 

 

Set<E>

Set์€ ์š”์†Œ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ์ €์žฅ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ HashSet, TreeSet๋“ฑ์ด ์žˆ๋‹ค.

๊ธฐ๋Šฅ ๋ฆฌํ„ดํƒ€์ž… ๋ฉ”์„œ๋“œ ์„ค๋ช…
๊ฐ์ฒด ์ถ”๊ฐ€ boolean add(Object o) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์„ฑ๊ณตํ•˜๋ฉด true๋ฅผ, ์ค‘๋ณต ๊ฐ์ฒด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ๊ฒ€์ƒ‰ boolean contains(Object o) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๊ฐ€ Set์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  boolean isEmpty() Set์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  Iterator Iterator() ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์”ฉ ์ฝ์–ด์˜ค๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  int size() ์ €์žฅ๋œ ์ „์ฒด ๊ฐ์ฒด์˜ ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ์‚ญ์ œ void clear() Set์— ์ €์žฅ๋œ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  boolean remove(Object o) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 

[HashSet] - https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html

[TreeSet] - https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html

 

TreeSet์€ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ €์žฅ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ์ €์žฅ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘๊ฐœ์˜ ์ž์‹๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋˜๋Š” ์ด์ง„ํŠธ๋ฆฌ(Binary Tree)์˜ ์ผ์ข…์œผ๋กœ, ์ •๋ ฌ๊ณผ ๊ฒ€์ƒ‰์— ํŠนํ™”๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ถœ๋ ฅ๊ฐ’์ด ์ž๋™์œผ๋กœ ์‚ฌ์ „ ํŽธ์ฐฌ์ˆœ์— ๋”ฐ๋ผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋‹ค. ์ด๋Š” TreeSet์˜ ๊ธฐ๋ณธ ์ •๋ ฌ๋ฐฉ์‹์ด ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

Map<K,V>

Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” Key์™€ Value๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์ด ๊ฐ์ฒด๋ฅผ Entry๊ฐ์ฒด ๋ผ๊ณ  ํ•˜๊ณ , Enrty ๊ฐ์ฒด๋Š” ํ‚ค์™€ ๊ฐ’์„ ๊ฐ๊ฐ Key๊ฐ์ฒด์™€ Value ๊ฐ์ฒด๋กœ ์ €์žฅํ•œ๋‹ค.

Map์˜ ํŠน์ง•์€ ํ‚ค๋Š” ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , ๊ฐ’์€ ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ์กด ํ‚ค์™€ ๊ฐ™์€ ํ‚ค๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋ฉด, ๊ธฐ์กดํ‚ค์˜ ๊ฐ’์ด ์ƒˆ๋กœ์šด๊ฐ’์œผ๋กœ ๋Œ€์น˜๋œ๋‹ค. Map์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋Š” HashMap, Hashtable, TreeMap, SortedMap ๋“ฑ์ด ์žˆ๋‹ค.

๊ธฐ๋Šฅ ๋ฆฌํ„ดํƒ€์ž… ๋ฉ”์„œ๋“œ  ์„ค๋ช…
๊ฐ์ฒด ์ถ”๊ฐ€ Object put(Object key, Object value) ์ฃผ์–ด์ง„ ํ‚ค๋กœ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ‚ค๊ฐ€ ์ƒˆ๋กœ์šด ํ‚ค์ผ ๊ฒฝ์šฐ null์„ ๋ฆฌํ„ดํ•˜์ง€๋งŒ, ๊ฐ™์€ ํ‚ค๊ฐ€ ์žˆ์œผ๋ฉด ๊ธฐ์กด์˜ ๊ฐ’์„ ๋Œ€์ฒดํ•˜๊ณ  ๋Œ€์ฒด๋˜๊ธฐ ์ด์ „์˜ ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ๊ฒ€์ƒ‰ boolean containsKey(Object key) ์ฃผ์–ด์ง„ ํ‚ค๊ฐ€ ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  boolean containsValue(Object value) ์ฃผ์–ด์ง„ ๊ฐ’์ด ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  Set entrySet() ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ชจ๋“  Map.Entry ๊ฐ์ฒด๋ฅผ Set์— ๋‹ด์•„์„œ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  Object get(Object key) ์ฃผ์–ด์ง„ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  boolean isEmpty() ์ปฌ๋ ‰์…˜์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  Set keySet() ๋ชจ๋“  ํ‚ค๋ฅผ Set ๊ฐ์ฒด์— ๋‹ด์•„์„œ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  int size() ์ €์žฅ๋œ Entry ๊ฐ์ฒด์˜ ์ด ๊ฐฏ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  Collection values() ์ €์žฅ๋œ ๋ชจ๋“  ๊ฐ’์„ Collection์— ๋‹ด์•„์„œ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ์‚ญ์ œ void clear() ๋ชจ๋“  Map.Entry(ํ‚ค์™€ ๊ฐ’)์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  Object remove(Object key) ์ฃผ์–ด์ง„ ํ‚ค์™€ ์ผ์น˜ํ•˜๋Š” Map.Entry๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

 

# HashMap

HashMap์€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํ‚ค์™€ ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๋ฏ€๋กœ, ์‚ฝ์ž…๋˜๋Š” ์ˆœ์„œ์™€ ์œ„์น˜ ๋˜ํ•œ ๊ด€๊ณ„๊ฐ€ ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  Hashing์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค.

HashMap<String, Integer> hashmap = new HashMap<>();
//HashMap์˜ ์ƒ์„ฑ

 


๐Ÿ‘Šํ˜ผ์ž์„œ ํ•ด๊ฒฐํ•˜๊ธฐ


๋‚ด์šฉ

 

 

๋ฐ˜์‘ํ˜•