๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

by OR15A 2023. 11. 14.



Properties ํด๋ž˜์Šค

  • HashTable์„ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•จ.
  • (String, String)์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ๋‹จ์ˆœํ™”ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค.
  • ์ฃผ๋กœ Appํ™˜๊ฒฝ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ์†์„ฑ์ €์žฅ์— ์‚ฌ์šฉํ•จ.



Collections ํด๋ž˜์Šค

  • ์ปฌ๋ ‰์…˜์˜ ๋™๊ธฐํ™”: ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋™๊ธฐํ™” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋จ: synchronized ์–ด์ฉŒ๊ตฌ ( )
  • ์ฝ๊ธฐ ์ „์šฉ ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๋•Œ๋Š”: unmodifiable~
  • ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ ์ €์žฅํ•˜๋Š” ์‹ฑ๊ธ€ํ†ค ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๋•Œ๋Š”: singleton ์–ด์ฉŒ๊ตฌ( )
  • ํ•œ ์ข…๋ฅ˜(ํƒ€์ž…) ๊ฐ์ฒด๋งŒ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค ๋•Œ: checked ์–ด์ฉŒ๊ตฌ( )→์ง€๋„ค๋ฆญ์Šค๊ฐ€ ๋” ๊ฐ„๋‹จํ•˜์ง€๋งŒ ํ˜ธํ™˜์„ฑ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•จ

2023.12.14 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ] - [๋ฉ”์„œ๋“œ] Collections ํด๋ž˜์Šค ์ฃผ์š” ๋ฉ”์„œ๋“œ



 

Arrays ํด๋ž˜์Šค

  • ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๋Š”๋ฐ ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์ •์˜๋˜์–ด์žˆ์Œ
  • copyOf: ๋ฐฐ์—ด ์ „์ฒด ๋ณต์‚ฌ
  • copyOfRange: ์ง€์ •๋œ ๋ฒ”์œ„ ๋ณต์‚ฌ(๋งˆ์ง€๋ง‰์€X)
  • fill: ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ง€์ •๋œ ๊ฐ’์œผ๋กœ ์ฑ„์›€
  • setAll(๋ฐฐ์—ด,๋žŒ๋‹ค์‹): ๋ฐฐ์—ด์„ ์ฑ„์šฐ๋Š”๋ฐ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค/๋žŒ๋‹ค์‹์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์Œ
  • sort: ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ
  • binarySearch: ๋ฐฐ์—ด์— ์ €์žฅ๋œ ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ (์ •๋ ฌ์ด ์„ ํ–‰๋˜์–ด์•ผํ•จ)
  • equals: ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๋ชจ๋“  ์š”์†Œ ๋น„๊ต
  • deepEquals: ๋‹ค์ฐจ์› ๋ฐฐ์—ด ๋น„๊ต
  • asList: ๋ฐฐ์—ด์„ List์— ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•จ. ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ณ€์ธ์ž๋ผ ๊ทธ๋ƒฅ ์ €์žฅํ•  ์š”์†Œ๋ฅผ ๋‚˜์—ด๋งŒ ํ•ด๋„ ๋จ. ๋ฐ˜ํ™˜ํ•œ List๋Š” ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•จ(์ฝ๊ธฐ์ „์šฉ,์–•์€๋ณต์‚ฌ) ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ List ํ•„์š” ์‹œ ArrayList์˜ ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๋ฉด๋จ
  • parallel: ๋ณด๋‹ค ๋น ๋ฅธ๊ฒฐ๊ณผ๋ฅผ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ž‘์—…์„ ๋‚˜๋ˆ”
  • spliterator: ํ•˜๋‚˜์ด ์ž‘์—…์„ ์—ฌ๋Ÿฌ ์ž‘์—…์œผ๋กœ ๋‚˜๋ˆ„๋Š” spliterator๋ฅผ ๋ฐ˜ํ™˜ํ•จ
  • stream: ์ปฌ๋ ‰์…˜์„ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•จ



Comparable, Comparator ์ธํ„ฐํŽ˜์ด์Šค

  • ์ปฌ๋ ‰์…˜์„ ์ •๋ ฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•จ.
  • “์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•จ”=์ •๋ ฌ ๊ธฐ์ค€ ์ œ๊ณตํ•จ
  • ๊ธฐ๋ณธ ์ •๋ ฌ ๊ธฐ์ค€ ๊ตฌํ˜„ ์‹œ: Comparable compareTo( obj 1 )
  • ๋‹ค๋ฅธ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ์‹œ: Comparator compare( obj 1, obj 2 )
  • Comparable์ธํ„ฐํŽ˜์ด์Šค: ๊ฐ์ฒด ์ •๋ ฌ ์‹œ ์‚ฌ์šฉํ•จ. compareTo()๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ด์„œ ๊ตฌํ˜„ํ•จ. ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋น„๊ต๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ํ˜„์žฌ๊ฐ์ฒด(this)์™€ ๋น„๊ตํ•จ. this๊ฐ€ ํฌ๋ฉด ์–‘์ˆ˜, ์ž‘์œผ๋ฉด ์Œ์ˆ˜, ๊ฐ™์œผ๋ฉด0
  • Comparator์ธํ„ฐํŽ˜์ด์Šค: Comparable๊ณผ ๋ณ„๋„๋กœ ์กด์žฌํ•จ. ์ •๋ ฌ๊ธฐ์ค€์„ ์ œ๊ณตํ•จ. compare()๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ด์„œ ๊ตฌํ˜„ํ•จ. ๋‘ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ๋น„๊ต ํ›„ ์™ผ์ชฝ์ด ํฌ๋ฉด ์–‘์ˆ˜, ์ž‘์œผ๋ฉด ์Œ์ˆ˜, ๊ฐ™์œผ๋ฉด0
  • Comparable๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ compare()๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์ค„ ๊ฒฝ์šฐ, ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ Comparable๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ CompareTo()๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•จ.



ArrayDeque

  • ์ž๋ฐ”์˜ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณต๋˜๋Š” ํด๋ž˜์Šค.
  • ๋ฑ(deque)์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์–‘๋ฐฉํ–ฅ ํ๋ฅผ ๊ตฌํ˜„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ.
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ํ(Queue)์™€ ์Šคํƒ(Stack)์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•จ.
  • ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ: ๋™์ ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น/ํ•ด์ œํ•จ.
  • ์–‘๋ฐฉํ–ฅ ํ: ํ์˜ ์•ž๊ณผ ๋’ค์—์„œ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Œ. ํ์˜ ์–‘ ๋์—์„œ ๋ชจ๋‘ ๋น ๋ฅด๊ฒŒ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌ.
  • Null ์š”์†Œ ํ—ˆ์šฉ: null ๊ฐ’์„ ํ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ null ๊ฐ’์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ.
  • ์„ฑ๋Šฅ: ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ์ด ๋น ๋ฅด๊ณ  ํšจ์œจ์ . ํ์˜ ์–‘ ๋์—์„œ์˜ ์š”์†Œ ์ถ”๊ฐ€/์ œ๊ฑฐ ์—ฐ์‚ฐ์ด ๋ชจ๋‘ O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง.

2023.11.30 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ] - [๋ฉ”์„œ๋“œ] ArrayDeque ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ



 

Iterator, ListIterator, Enumeration

๋ฐ˜๋ณต์ž

  • Iterator: ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์ธํ„ฐํŽ˜์ด์Šค
  • Collection ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” iterator(๊ตฌํ˜„ ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” iterator( )๋ฉ”์„œ๋“œ ์ •์˜ํ•จ.
  • ๋ฉ”์„œ๋“œ: hasNext(), next(), remove()
  • Map์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๋Š” iterator()์˜ ์ง์ ‘ํ˜ธ์ถœ์€ ์–ด๋ ต์ง€๋งŒ ketSet()์ด๋‚˜ values()๋กœ ๊ฐ๊ฐ์˜ ํ‚ค&๊ฐ’์„ ๋”ฐ๋กœ setํ˜•ํƒœ๋กœ ์–ป์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.(+ entrySet())



๊ธฐํƒ€

  • Collection.sort(set); XXX
  • List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์ปฌ๋ Œ์…˜๋“ค๋งŒ ์ •๋ ฌ๊ฐ€๋Šฅํ•จ.
  • List๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ •๋ ฌํ•ด์•ผํ•จ.
  • List list = new LinkedList(set);
  • Collection.sort(list); OOO