๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
2๏ธโƒฃ Java/Java ์ •๋ฆฌ

[Java] Object ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ์žฌ์ •์˜ (toString, equals, hashCode)

by seolhee2750 2022. 7. 24.

๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์กฐ์ƒ์œผ๋กœ ๊ฐ€์ง„๋‹ค.

๋”ฐ๋ผ์„œ Object ํด๋ž˜์Šค์— ๊ตฌํ˜„๋œ ๋ฉ”์„œ๋“œ๋“ค์„ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š”๋ฐ,

 

๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” toString, equals, hashCode๋ฅผ ์žฌ์ •์˜ํ•˜์—ฌ

์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๐Ÿค—


๐Ÿ“Œ toString

toString ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ toString ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ ์—†์ด ์‚ฌ์šฉํ•ด๋ณด๋ฉด, ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ์•„๋‹Œ ์ฃผ์†Œ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์žฌ์ •์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๐Ÿ’ฅ

 

๋จผ์ € ์›ํ•˜๋Š” ํด๋ž˜์Šค(๋‚˜์˜ ๊ฒฝ์šฐ์—” Object_toString ํด๋ž˜์Šค)์—์„œ

์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค ํด๋ฆญ -> Source -> Generate toString() ... ๋ฅผ ์„ ํƒ,

inherited methods์—์„œ toString()์„ ์ฒดํฌํ•˜์—ฌ ๋ฉ”์„œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ž.

 

๊ทธ๋Ÿผ ์•„๋ž˜์™€๊ฐ™์ด Override ์• ๋…ธํ…Œ์ด์…˜๊ณผ ํ•จ๊ป˜ toString ๋ฉ”์„œ๋“œ๊ฐ€ ํ‘œํ˜„๋  ๊ฒƒ์ด๋‹ค.

@Override
public String toString() {
	return "Object_toString [str=" + str + ", toString()=" + super.toString() + "]";
}

 

์—ฌ๊ธฐ์„œ ์ด์ œ ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ ,

์›ํ•˜๋Š” ๋ฐ˜ํ™˜ ํ˜•ํƒœ๋ฅผ ์„ค์ •ํ•˜์—ฌ return ๋ฌธ์„ ์ˆ˜์ •ํ•ด์ค€๋‹ค.

@Override
public String toString() {
	return String.format("%s, ์•ˆ๋…•", str);
}

์œ„์™€ ๊ฐ™์ด String.format ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•ด๋„ ์ข‹๊ณ , + ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ค˜๋„ ๊ดœ์ฐฎ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ถœ๋ ฅ ํ˜•ํƒœ๋กœ ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ toString ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋ฉด

๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜, ์ƒˆ๋กœ์šด ์ถœ๋ ฅ ํ˜•ํƒœ๋ฅผ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ‘


๐Ÿ“Œ equals

equals ๋ฉ”์„œ๋“œ๋Š” ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•œ๋‹ค.

ํ•˜์ง€๋งŒ equals๋„ toString๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‘ ๊ฐ์ฒด์˜ ๋‚ด์šฉ์ด ์•„๋‹Œ ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.

๐Ÿ‘‰ ๋ถ„๋ช… ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ๋„ฃ์–ด์ฃผ์—ˆ์ง€๋งŒ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

(== ์—ฐ์‚ฐ์ž ๋˜ํ•œ ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•˜๋ฏ€๋กœ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค.)

 

๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์—๋„ ๊ฐ์ฒด์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”์„œ๋“œ ์žฌ์ •์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค -> Source -> Generate hashCode() and equals() ... -> ๋น„๊ตํ•  ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์„ ํƒ

์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ equals ๋ฉ”์„œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ ๋’ค, ์žฌ์ •์˜ ํ•ด์ฃผ์—ˆ๋‹ค.

๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ์ฒด์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•˜์—ฌ true๋ฅผ ๋ฆฌํ„ดํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿผ equals ๋ฉ”์„œ๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์žฌ์ •์˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

 

equals ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•  ๋•Œ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ์กฐ๊ฑด์„ ์ง€์ผœ์ฃผ๋ฉด ์ข‹๋‹ค.
  • ์ฃผ์†Œ๊ฐ’ ๊ฐ™์€์ง€ ํ™•์ธ
    ์ฃผ์†Œ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ๋‚ด์šฉ์ด ๊ฐ™์€์ง€ ํ™•์ธํ•ด์ค„ ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ
  • ๋‹ค์šด์บ์ŠคํŒ… ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ
    Object ํƒ€์ž…์œผ๋กœ ๋ฐ›์€ ์ธ์ž๊ฐ€ ํ˜„ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
    ๋ถˆ๊ฐ€ํ•˜๋‹ค๋ฉด ๊ฐ’ ๋น„๊ต ๋˜ํ•œ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ!
  • ๋‹ค์šด์บ์ŠคํŒ…, ๋‚ด์šฉ ๋น„๊ต
    Object ํƒ€์ž…์˜ ์ธ์ž obj๋ฅผ ํ˜„ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋‚ด์šฉ์ด ๊ฐ™์€์ง€ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
    (์ด์ „์— ๋‹ค์šด์บ์ŠคํŒ… ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์ง€๋งŒ,
    ์ด๋ฏธ ํ™•์ธํ•ด์ฃผ์—ˆ์œผ๋ฏ€๋กœ 100% ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.)

์œ„์™€ ๊ฐ™์€ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋„๋ก ์žฌ์ •์˜ํ•œ๋‹ค๋ฉด, ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ equals ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด์„œ ๊ฐ์ฒด์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๊ณ ,

์ฃผ์†Œ๋ฅผ ๋น„๊ตํ•˜๊ณ  ์‹ถ์„ ๋–„๋Š” == ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ์œ ์šฉํ•  ๊ฒƒ์ด๋‹ค. ๐Ÿ‘

 

๐Ÿ’ฅ ์—ฌ๊ธฐ์„œ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ์ ์ด ์žˆ๋Š”๋ฐ,

์œ„์—์„œ๋Š” equals ๋ฉ”์„œ๋“œ๋งŒ ์žฌ์ •์˜ํ•˜์˜€์ง€๋งŒ,
equals ๋ฉ”์„œ๋“œ๋ฅผ Generateํ•  ๋•Œ hashCode๋„ ์ž๋™์œผ๋กœ ํ•จ๊ป˜ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ด๋Š” equals ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•  ๋•Œ๋Š” hashCode๋„ ๊ฐ™์ด ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ hashCode์—์„œ ํ™•์ธํ•ด๋ณด์ž!


๐Ÿ“Œ hashCode

hashCode ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•œ๋‹ค.

 

ํ•ด์‹œ ์ฝ”๋“œ๋ž€ ์‹œ์Šคํ…œ์—์„œ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ •์ˆ˜ ๊ฐ’์„ ๋งํ•˜๋Š”๋ฐ,

HashSet, HashMap, HashTable ๋“ฑ์—์„œ ๊ฐ์ฒด์˜ ๋™์ผ์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

 

์œ„์—์„œ ๋งํ–ˆ๋“ฏ equals ๋ฉ”์„œ๋“œ์™€ hashCode ๋ฉ”์„œ๋“œ๋Š” ํ•จ๊ป˜ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ ,

ํ•จ๊ป˜ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด์‹œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” Collection์ธ

HashSet, HashMap, HashTable ๋“ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ ์ด์œ ๋Š” ํ•ด์‹œ ์ฝ”๋“œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” Collection์ด ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ณผ์ •์—์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

hashCode ๋ฉ”์„œ๋“œ๋Š” int ํƒ€์ž…์œผ๋กœ ํ•ด์‹œ ์ฝ”๋“œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ,

์ด ๋ฆฌํ„ด๊ฐ’์ด ์ผ์น˜ํ•˜๊ณ , equals ๋ฉ”์„œ๋“œ์˜ ๋ฆฌํ„ด๊ฐ’์ด  true๋ฉด ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€ ๊ฐ์ฒด๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค.

 

ํ•œ ๋งˆ๋””๋กœ, hashCode ๋จผ์ € ๋น„๊ตํ•˜๊ณ ! equals ๋น„๊ตํ•ด์ค€๋‹ค๋Š” ๊ฒƒ

๐Ÿ‘‰ equals๋กœ ๋น„๊ตํ•œ ๊ฐ’์ด ๊ฐ™์•„๋„ haseCode๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ ํŒ๋‹จ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ equals๋งŒ ์žฌ์ •์˜ํ•˜๊ณ , hashCode๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์œผ๋ฉด

ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” Collection์˜ ๊ฒฝ์šฐ ๋‚ด์šฉ์ด ๊ฐ™์•„๋„ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ equals ์žฌ์ •์˜ ์‹œ hashCode๊นŒ์ง€ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ!

 

์ด๋Ÿฌํ•œ ๋™์ž‘ ๋ฐ hashCode ์žฌ์ •์˜ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด์ž.

 

์•„๋ž˜๋Š” equals๋งŒ ์žฌ์ •์˜ํ•˜๊ณ , HashSet์— ๊ฐ™์€ ๋‚ด์šฉ์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

๐Ÿ‘‰ ๊ฐ™์€ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ค‘๋ณต ์ œ๊ฑฐ๊ฐ€ ๋˜์ง€ ์•Š์€ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ์œ„์—์„œ ํ™•์ธํ–ˆ๋“ฏ hashCode ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธด ๋ฌธ์ œ์ด๋‹ค.

 

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด hashCode ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด๋ณด์ž.

๐Ÿ‘‰ ๊ฐ™์€ ๋‚ด์šฉ์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋Š” ๊ฐ™๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์ด Objects์˜ hash ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๊ฐ„๋‹จํžˆ hashCode๋ฅผ ์žฌ์ •์˜ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

hashCode์˜ ๊ฒฝ์šฐ ํ•ด์‹œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ์ง€๋งŒ,

์ถ”ํ›„์— ์ˆ˜์ •ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ์žˆ์œผ๋ฏ€๋กœ ํ•จ๊ป˜ ์žฌ์ •์˜ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


๐ŸŒŸ ์ •๋ฆฌ

  • Object ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์กฐ์ƒ์ด๋ฏ€๋กœ, ํ•ด๋‹นํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋“ค์„ ์žฌ์ •์˜ํ•˜๋ฉด ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • toString ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š”๋ฐ, ์›๋ž˜๋Š” ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    ์žฌ์ •์˜ํ•˜์—ฌ ๋‚ด์šฉ์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ์›ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • equals ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋Š”๋ฐ, ์›๋ž˜๋Š” ์ฃผ์†Œ๋ฅผ ๋น„๊ตํ•œ๋‹ค.
    ์žฌ์ •์˜ํ•˜์—ฌ ๋‚ด์šฉ์„ ๋น„๊ตํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • hashCode ๋ฉ”์„œ๋“œ๋Š” ํ•ด์‹œ ๊ฐ’์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ,
    equals์™€ hashCode๋Š” ํ•จ๊ป˜ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.
    ํ•ด์‹œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” Collection์˜ ๊ฒฝ์šฐ equals ์ด์ „์— hashCode ๋น„๊ต๋ฅผ ์šฐ์„ ์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    equals๋งŒ ์žฌ์ •์˜ํ•  ๊ฒฝ์šฐ ๊ฐ™์€ ๋‚ด์šฉ์ด๋”๋ผ๋„ ๊ฐ™์€ ๊ฐ์ฒด๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

์ฐธ๊ณ 

 

๋Œ“๊ธ€