[JAVA] 17. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(TreeSet, HashMap, HashTable, ํ•ด์‹ฑ๊ณผ ํ•ด์‹œํ•จ์ˆ˜, TreeMap, Properties, Collections)

2022. 5. 13. 22:12ใ†JAVA/์ž๋ฐ”์˜ ์ •์„

728x90

https://hyejin.tistory.com/584

 

[JAVA] 17. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ (Comparator, Comparable, HashSet, TreeSet)

1๏ธโƒฃ Comparator์™€ Comparable ์ด์ „์— Arrays.sort()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์•Œ์•„์„œ ์ •๋ ฌ๋์—ˆ๋Š”๋ฐ ์ด๊ฑด ์‚ฌ์‹ค Comparatorํด๋ž˜์Šค์˜ Comparable ์˜ ๊ตฌํ˜„์— ์˜ํ•ด ์ •๋ ฌ๋˜์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. Comparator์™€ Comparable์€ ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค..

hyejin.tistory.com

 

1๏ธโƒฃ TreeSet

TreeSet์€ ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ(binary search tree) ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ด๋‹ค. 

์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ (binary search tree)
- ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 
- ์™ผ์ชฝ ์ž์‹๋…ธ๋“œ์˜ ๊ฐ’์€ ๋ถ€๋ชจ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘๊ณ  ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’์€ ๋ถ€๋ชจ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ปค์•ผํ•œ๋‹ค. 
- ๋…ธ๋“œ์˜ ์ถ”๊ฐ€ ์‚ญ์ œ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. (์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ)
- ๊ฒ€์ƒ‰(๋ฒ”์œ„ ๊ฒ€์ƒ‰)๊ณผ ์ •๋ ฌ์— ์œ ๋ฆฌํ•˜๋‹ค. 
- ์ค‘๋ณต๋œ ๊ฐ’์„ ์ €์žฅํ•˜์ง€ ๋ชปํ•œ๋‹ค. 

-> ์ €๋ฒˆ์— HashSet์œผ๋กœ Lotto ๋ฒˆํ˜ธ๋ฅผ ๋งŒ๋“œ๋Š” ์˜ˆ์ œ์—์„œ๋Š” ์ •๋ ฌํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ”์—ˆ๋Š”๋ฐ TreeSet์€ ์ด๋ฏธ ์ •๋ ฌ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค. 

 

 

-> subSet() ์„ ์ด์šฉํ•ด์„œ ๋ฒ”์œ„๊ฒ€์ƒ‰(range search)๋ฅผ ํ•  ๋•Œ ์‹œ์ž‘ ๋ฒ”์œ„๋Š” ํฌํ•จ๋˜์ง€๋งŒ ๋ ๋ฒ”์œ„๋Š” ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ result1์—๋Š” c๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๊นŒ์ง€๋งŒ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. 

๋งŒ์ผ ๋ ๋ฒ”์œ„์ธ d๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๊นŒ์ง€ ํฌํ•จ์‹œํ‚ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๋ ๋ฒ”์œ„์— 'zzz'์™€ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ๋ถ™์ด๋ฉด ๋œ๋‹ค. 

(d๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด ์ค‘์—์„œ 'dzzz' ๋‹ค์Œ์— ์˜ค๋Š” ๋‹จ์–ด๋Š” ์—†์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— d๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๋‹จ์–ด๋“ค์ด ํฌํ•จ๋  ๊ฒƒ์ด๋‹ค.)

 

 

-> headSet ๋ฉ”์„œ๋“œ์™€ tailSet ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด, TreeSet์— ์ €์žฅ๋œ ๊ฐ์ฒด ์ค‘ ์ง€์ •๋œ ๊ธฐ์ค€ ๊ฐ’ ๋ณด๋‹ค ํฐ ๊ฐ’์˜ ๊ฐ์ฒด๋“ค๊ณผ ์ž‘์€ ๊ฐ’์˜ ๊ฐ์ฒด๋“ค์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

2๏ธโƒฃ HashMap, HashTable

HashTable๊ณผ HashMap์€ Vector์™€ Arraylist์˜ ๊ด€๊ณ„์™€ ๊ฐ™์•„์„œ HashTable๋ณด๋‹ค๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์ธ HashMap์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒํ•œ๋‹ค. 

HashMap์€ Map์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฏ€๋กœ Map์˜ ํŠน์ง•, ํ‚ค(key)์™€ ๊ฐ’(value)์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ(entry)๋กœ ์ €์žฅํ•œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ํ•ด์‹ฑ(hashing)์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค. 

-> HashMap์€ Entry๋ผ๋Š” ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ , ๋‹ค์‹œ Entryํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ์žˆ๋‹ค. 

 

HashMap์€ ํ‚ค์™€ ๊ฐ’์„ ๊ฐ๊ฐ Objectํƒ€์ž…์œผ๋กœ ์ €์žฅํ•œ๋‹ค. ์ฆ‰ (Object, Object)์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋– ํ•œ ๊ฐ์ฒด๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ‚ค๋Š” ์ฃผ๋กœ String์„ ๋Œ€๋ฌธ์ž ๋˜๋Š” ์†Œ๋ฌธ์ž๋กœ ํ†ต์ผํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณค ํ•œ๋‹ค.

 

ํ‚ค key : ์ปฌ๋ ‰์…˜ ๋‚ด์˜ ํ‚ค(key) ์ค‘์—์„œ ์œ ์ผํ•ด์•ผํ•œ๋‹ค. 
๊ฐ’ value : ํ‚ค(key)์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค. 

-> ํ‚ค๋Š” ์ €์žฅ๋œ ๊ฐ’์„ ์ฐพ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปฌ๋ ‰์…˜ ๋‚ด์—์„œ ์œ ์ผํ•ด์•ผํ•œ๋‹ค. 

-> ์ฆ‰, HashMap์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํ‚ค๋กœ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹จ ํ•˜๋‚˜์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

 

-> ์„ธ๋ฒˆ์งธ์˜ asdf ํ‚ค๋Š” ์ด๋ฏธ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ์กด์˜ ๊ฐ’์„ ๋ฎ์–ด์“ด๋‹ค. ๊ทธ๋ž˜์„œ asdf์˜ ์—ฐ๊ฒฐ๋œ ๊ฐ’์€ 1234์ด๋‹ค. 

Map์€ ๊ฐ’์˜ ์ค‘๋ณต์€ ํ—ˆ์šฉํ•˜์ง€๋งŒ ํ‚ค๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅํ•˜๋ ค๋Š” ๋‘ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ์–ด๋Š ์ชฝ์„ ํ‚ค๋กœ ํ•  ๊ฒƒ์ธ์ง€ ์ž˜ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค. 

 

 

(Map.Entry๋Š” Map์˜ ๋‚ด๋ถ€์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.)

 

 

-> ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— ๋‹ด๊ธด ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜์”ฉ ์ฝ์–ด์„œ HashMAp์— ํ‚ค๋กœ ์ €์žฅํ•˜๊ณ  ๊ฐ’์œผ๋กœ 1์„ ์ €์žฅํ•œ๋‹ค. 

HashMap์— ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ํ‚ค๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ containsKey()๋กœ ํ™•์ธํ•˜์—ฌ ์ด๋ฏธ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋ฉด ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 

 

 

3๏ธโƒฃ ํ•ด์‹ฑ๊ณผ ํ•ด์‹œ ํ•จ์ˆ˜ 

 ํ•ด์‹ฑ์ด๋ž€ ํ•ด์‹œํ•จ์ˆ˜(hash function)์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋ฒ•์„ ๋งํ•œ๋‹ค. 

ํ•ด์‹œํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ณณ์„ ์•Œ๋ ค์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ๋„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

ํ•ด์‹ฑ์„ ๊ตฌํ˜„ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๋กœ๋Š” HashSet, HashMap, HashTable ๋“ฑ์ด ์žˆ๋‹ค. 

 

-> ํ•ด์‹ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐฐ์—ด๊ณผ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์˜ ์กฐํ•ฉ์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค. 

์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ํ‚ค๋ฅผ ํ•ด์‹œํ•จ์ˆ˜์— ๋„ฃ์œผ๋ฉด ๋ฐฐ์—ด์˜ ํ•œ ์š”์†Œ๋ฅผ ์–ป๊ฒŒ ๋˜๊ณ , ๋‹ค์‹œ ๊ทธ ๊ณณ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

 

HashMap๊ณผ ๊ฐ™์ด ํ•ด์‹ฑ์„ ๊ตฌํ˜„ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์—์„œ๋Š” Object ํด๋ž˜์Šค์— ์ •์˜๋œ hashCode()๋ฅผ ํ•ด์‹œํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 

Objectํด๋ž˜์Šค์— ์ •์˜๋œ hashCode()๋Š” ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฐ์ฒด์— ๋Œ€ํ•ด hashCode()๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์„œ๋กœ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. 

 

String ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ์—๋Š” Object๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์€ hashCode()๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์„œ ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์œผ๋กœ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค.

๊ทธ๋ž˜์„œ ์„œ๋กœ ๋‹ค๋ฅธ String ์ธ์Šคํ„ด์Šค์ผ์ง€๋ผ๋„ ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฌธ์ž์—ด์„ ๊ฐ€์กŒ๋‹ค๋ฉด hashCode()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ฐ™์€ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ์–ป๋Š”๋‹ค. 

 

์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐ์ฒด์— ๋Œ€ํ•ด equals()๋กœ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ๋™์‹œ์— hashCode()์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ๊ฐ™์•„์•ผ ๊ฐ™์€ ๊ฐ์ฒด๋กœ ์ธ์‹ํ•œ๋‹ค. 

๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ equals()๋ฅผ ์žฌ์ •์˜์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์•ผํ•œ๋‹ค๋ฉด hashCode()๋„ ๊ฐ™์ด ์žฌ์ •์˜ํ•ด์„œ equals()์˜ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ๋‘ ๊ฐ์ฒด์˜ ํ•ด์‹œ์ฝ”๋“œhashCode()์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ํ•ญ์ƒ ๊ฐ™๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

-> ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ด์‹ฑ์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์—์„œ๋Š” equals()์˜ ํ˜ธ์ถœ๊ฒฐ๊ณผ๊ฐ€ true์ด์ง€๋งŒ ํ•ด์‹œ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋‘ ๊ฐ์ฒด๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ๋”ฐ๋กœ ์ €์žฅํ•  ๊ฒƒ์ด๋‹ค. 

 

 

4๏ธโƒฃ TreeMap

TreeMap์€ ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ์˜ ํ˜•ํƒœ๋กœ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. 

-> ๊ทธ๋ž˜์„œ ๊ฒ€์ƒ‰๊ณผ ์ •๋ ฌ์— ์ ํ•ฉํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ด๋‹ค. 

 

(๊ฒ€์ƒ‰์— ๊ด€ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” HashMap์ด TreeMap๋ณด๋‹ค ๋” ๋›ฐ์–ด๋‚˜๋‹ค. HashMap์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ทผ๋ฐ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด๋‚˜ ์ •๋ ฌ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ๋Š” TreeMap์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.)

 

 

5๏ธโƒฃ Properties 

Properties๋Š” HashMap์˜ ๊ตฌ๋ฒ„์ „์ธ Hashtable์„ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•œ ๊ฒƒ์œผ๋กœ Hashtable์€ ํ‚ค์™€ ๊ฐ’์„ (Object, Object)์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š”๋ฐ ๋น„ํ•ด Properties๋Š” (String,String)์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ๋ณด๋‹ค ๋‹จ์ˆœํ™”๋œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ด๋‹ค. 

 

stringPropertyNames() 

: Properties์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ํ‚คkey ๋ฅผ Set์— ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

-> ์—ฌ๊ธฐ์„œ๋Š” Iterator์˜ ๊ตฌ๋ฒ„์ „ Enumeration ์„ ์‚ฌ์šฉํ•ด์„œ element ๊ฐ’์„ ์ถœ๋ ฅํ–ˆ๋‹ค. 

 

setProperty() 

: ์ง€์ •๋œ ํ‚ค์™€ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ‚ค๋ฉด ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋ฐ”๊พผ๋‹ค. 

-> ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” setProperty()๋Š” ๋‹จ์ˆœํžˆ Hashtable์˜ put๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋ฟ์ด๋‹ค. 

setProperty()๋Š” ๊ธฐ์กด์— ๊ฐ™์€ ํ‚ค๋กœ ์ €์žฅ๋œ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ทธ ๊ฐ’์„ Object ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ๋Š” Null ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

getProperty()

: Properties์— ์ €์žฅ๋œ ๊ฐ’์„ ์ฝ์–ด์˜ค๋Š” ์ผ์„ ํ•˜๋Š”๋ฐ, ๋งŒ์ผ ์ฝ์–ด์˜ค๋ ค๋Š” ํ‚ค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ง€์ •๋œ ๊ธฐ๋ณธ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

6๏ธโƒฃ Collections

Arrays๊ฐ€ ๋ฐฐ์—ด๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, Collections๋Š” ์ปฌ๋ ‰์…˜๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 

(์ปฌ๋ ‰์…˜์„ ์œ„ํ•œ static ๋ฉ”์„œ๋“œ ์ œ๊ณต) 

 

- ์ปฌ๋ ‰์…˜์˜ ๋™๊ธฐํ™”

๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณต์œ ๋˜๋Š” ๊ฐ์ฒด ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

 

Vector์™€ Hashtable๊ณผ ๊ฐ™์€ ๊ตฌ๋ฒ„์ „์˜ ํด๋ž˜์Šค๋“ค์€ ์ž์ฒด์ ์œผ๋กœ ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ๋Š”๋ฐ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ๋˜์–ด ์„ฑ๋Šฅ์„ ๋–จ์–ดํŠธ๋ฆฌ๋Š” ์š”์ธ์ด ๋œ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ArrayList์™€ HashMap๊ณผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์€ ๋™๊ธฐํ™”๋ฅผ ์ž์ฒด์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ java.util.Collections ํด๋ž˜์Šค์˜ ๋™๊ธฐํ™” ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ณ€๊ฒฝํ•œ๋‹ค. 

 

 

- ๋ณ€๊ฒฝ๋ถˆ๊ฐ€ ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค๊ธฐ

์ปฌ๋ ‰์…˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ปฌ๋ ‰์…˜์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ฒŒ, ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค. 

(์ฃผ๋กœ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ์ปฌ๋ ‰์…˜์„ ๊ณต์œ ํ•˜๋‹ค๋ณด๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ)

 

 

- ์‹ฑ๊ธ€ํ†ค ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค๊ธฐ

๋‹จ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ์„ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 

-> ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•  ์š”์†Œ๋ฅผ ์ง€์ •ํ•˜๋ฉด , ํ•ด๋‹น ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด ๋ฐ˜ํ™˜๋œ ์ปฌ๋ ‰์…˜์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

 

 

- ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋งŒ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค๊ธฐ

-> ์ปฌ๋ ‰์…˜์— ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์žฅ์ ์ด๊ธฐ๋„ ํ•˜๊ณ  ๋‹จ์ ์ด๊ธฐ๋„ ํ•˜๋‹ค. 

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ์ปฌ๋ ‰์…˜์— ์ง€์ •๋œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

 

์ปฌ๋ ‰์…˜์— ์ €์žฅํ•  ์š”์†Œ์˜ ํƒ€์ž…์„ ์ œํ•œํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ง€๋„ค๋ฆญ์Šค๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค!( ๊ทผ๋ฐ ์ด๋Ÿฐ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ด์œ ๋Š” ํ˜ธํ™˜์„ฑ ๋•Œ๋ฌธ)

 

 

 

โ—๏ธ ์ •๋ฆฌ 

ArrayList : ๋ฐฐ์—ด ๊ธฐ๋ฐ˜, ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€์™€ ์‚ญ์ œ์— ๋ถˆ๋ฆฌ, ์ˆœ์ฐจ์ ์ธ ์ถ”๊ฐ€/์‚ญ์ œ๋Š” ์ œ์ผ ๋น ๋ฆ„. ์ž„์˜์˜ ์š”์†Œ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ฑ์ด ๋›ฐ์–ด๋‚จ 

LinkedList:  ์—ฐ๊ฒฐ ๊ธฐ๋ฐ˜, ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€์™€ ์‚ญ์ œ์— ์œ ๋ฆฌ, ์ž„์˜์˜ ์š”์†Œ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ฑ์ด ์ข‹์ง€๋Š” ์•Š๋‹ค. 

HashMap : ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ์ด ๊ฒฐํ•ฉ๋œ ํ˜•ํƒœ, ์ถ”๊ฐ€, ์‚ญ์ œ, ๊ฒ€์ƒ‰, ์ ‘๊ทผ์„ฑ์ด ๋ชจ๋‘ ๋›ฐ์–ด๋‚จ. ๊ฒ€์ƒ‰์—๋Š” ์ตœ๊ณ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค. 

TreeMap: ์—ฐ๊ฒฐ๊ธฐ๋ฐ˜, ์ •๋ ฌ๊ณผ ๊ฒ€์ƒ‰(ํŠนํžˆ ๋ฒ”์œ„๊ฒ€์ƒ‰)์— ์ ํ•ฉ, ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์€ HashMap๋ณด๋‹ค๋Š” ๋–จ์–ด์ง

Stack: Vector๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„(LIFO) 

Queue: LinkedList๊ฐ€ Queue์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ (FIFO)

Properties : HashTable์„ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„(String, String)

HashSet : HashMap์„ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ 

TreeSet: TreeMap์„ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ 

LinkedHashMap, LinkedHashSet : HashMap๊ณผ HashSet์— ์ €์žฅ์ˆœ์„œ ์œ ์ง€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90