page-cover

title

๋ถ„๋Ÿ‰์ด ๋งŽ์•„์ง€๋ฉด ๋ณ„๋„์˜ ๋ฌธ์„œ๋กœ ์ •๋ฆฌ

๋™๋“ฑ์„ฑ (equality)

  1. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด๋Š” Object.equals(Object)๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
  2. Hash ๋ฅ˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ์ฒด์˜ hashcode()๋ฅผ ํ™œ์šฉํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ equals ํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜๋ฉด hashcode๋„ ๊ฐ™์ด ํ•˜๋ผ๊ณ  ๋ฆฐํ„ฐ์—์„œ ๊ถŒ๊ณ ํ•œ๋‹ค.
  3. Sorted ๋ฅ˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” Comparable<T>์ธํ„ฐํŽ˜์ด์Šค์˜ compareTo(T)๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

์ด ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋Š” ์ด์œ ๋Š” Map<K, V>์˜ ํ‚ค๋ฅผ ํ• ๋‹น๋œ ์ˆœ์„œ๋กœ ์ˆœํšŒํ•˜๊ณ  ์‹ถ์–ด์„œ, SortedMap๊ณผ K์˜ Wrapper๋ฅผ ํ™œ์šฉํ•˜๋‹ค ์‹คํŒจํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ‚ค๋ฅผ ํ• ๋‹นํ•  ๋•Œ๋งˆ๋‹ค id๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  TreeMap์œผ๋กœ id์— ๋Œ€ํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ˆœํšŒํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ž์„œ ๋งํ•œ ๋™๋“ฑ์„ฑ์— ๋Œ€ํ•œ ๊ธฐ์ค€ ๋•Œ๋ฌธ์—, ํ‚ค์˜ ๋™๋“ฑ์„ฑ์ด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ, ์˜ค๋กœ์ง€ id๋กœ๋งŒ ํ‰๊ฐ€๋˜์–ด ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ๋ชจ๋‘ ํ…Œ์ŠคํŠธ ์‹คํŒจํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

SortedMap ์ธํ„ฐํŽ˜์ด์Šค ๋Œ€์‹  SequencedMap ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

[!info] SequencedMap ์ธํ„ฐํŽ˜์ด์Šค ์„ค๋ช…

A Map that has a well-defined encounter order, that supports operations at both ends, and that is reversible. The encounter order of a SequencedMap is similar to that of the elements of a SequencedCollection, but the ordering applies to mappings instead of individual elements.

๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„์ฒด๋งŒ LinkedHashMap์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค.