๐Ÿ“š ์ฐธ๊ณ ํ•œ ์ฑ…

 

: ์ถœ์ฒ˜ ์˜ˆ์Šค24 ํ™ˆํŽ˜์ด์ง€

 

 

- ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ์ •๋ฆฌํ•˜๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค -

 

 

๐Ÿฅ ๐Ÿฅ ๐Ÿฅ

 


 

โœ”๏ธ   Set<E>_ 646p

 

• Set<E>

: ๋™์ผํ•œ ํƒ€์ž…์„ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ธ๋ฑ์Šค ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š์€, ์ง‘ํ•ฉ์˜ ๊ฐœ๋…๊ณผ ๊ฐ™์€ ์ปฌ๋ ˆ์…˜์ด๋‹ค.

Set<String> hset1 = new HashSet<String>();

hset1.add("a");
hset1.add("b");
hset1.add("c");
System.out.println(hset1.toString());
System.out.println(hset1.size());

hset1.add("a");
System.out.println(hset1.toString());
System.out.println(hset1.size());
Set<E>๋Š” ์ธ๋ฑ์Šค ์ •๋ณด๊ฐ€ ์—†์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณตํ•ด ์ €์žฅํ•˜๋ฉด ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ์ค‘ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์นญํ•ด ๊บผ๋‚ผ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. Set<E>๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด์ธ ๊ฒƒ์ด๋‹ค. ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด hset1์— a,b,c๋ฅผ ์ €์žฅํ–ˆ๊ณ  ์ดํ›„์— a๋ฅผ ๋˜ ํ•œ ๋ฒˆ ์ €์žฅํ–ˆ๋‹ค. Set<E>๋Š” ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ €์žฅ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ถœ๋ ฅ๋˜๋Š” ๊ฐ’๊ณผ ์‚ฌ์ด์ฆˆ์˜ ํฌ๊ธฐ๋Š” ๋ณ€๋™๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋•Œ ์ถœ๋ ฅ์€ ์ž…๋ ฅ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋‹ค.

 

 

• Set<E>์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

๊ตฌ๋ถ„ ๋ฆฌํ„ด ํƒ€์ž… ๋ฉ”์„œ๋“œ๋ช… ๊ธฐ๋Šฅ
๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ boolean add(E element) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์›์†Œ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
boolean addAll
(Collection<? Extends E> c)
๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์ปฌ๋ ‰์…˜ ์ „์ฒด๋ฅผ ์ถ”๊ฐ€
๋ฐ์ดํ„ฐ ์‚ญ์ œ boolean remove(Object o) ์›์†Œ ์ค‘ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž…๋ ฅ๊ณผ ๋™์ผํ•œ ๊ฐ์ฒด ์‚ญ์ œ
void clear() ์ „์ฒด ์›์†Œ ์‚ญ์ œ
๋ฐ์ดํ„ฐ ์ •๋ณด
์ถ”์ถœ
boolean isEmpty() Set<E> ๊ฐ์ฒด๊ฐ€ ๋น„์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฆฌํ„ด
boolean contains(Object o) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฆฌํ„ด
int size() ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด ๋‚ด์— ํฌํ•จ๋œ ์›์†Œ์˜ ๊ฐœ์ˆ˜
iterator<E> iterator() Set<E> ๊ฐ์ฒด ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†ํ•ด ๊บผ๋‚ด๋Š” iterator
๊ฐ์ฒด๋ฆฌํ„ด
Set<E> ๊ฐ์ฒด
๋ฐฐ์—ด ๋ณ€ํ™˜
Object[] toArray() ๋ฆฌ์ŠคํŠธ๋ฅผ Object ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
T[] toArraty(T[] t) ์ž…๋ ฅ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•œ ํƒ€์ž…์˜ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

 

 

 

 


 

 

 

โœ”๏ธ   HashSet<E>_ 648p

 

• HashSet<E>

: Set<E> ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„ ํด๋ž˜์Šค๋กœ, ์ €์žฅ์šฉ๋Ÿ‰์„ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋กœ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’์€ 16์ด๋‹ค.

 

• contains

: Set์— ํฌํ•จ๋œ ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

• iterator

: ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†ํ•ด์„œ ๊บผ๋‚ธ๋‹ค.

hset1.contains("a"); // true

Iterator<String> iterator = hset1.iterator();
while(iterator.hasNext()) {
    System.out.println(iterator.next() + " "); // a b c
}
contains(Object o) ๋ฉ”์„œ๋“œ๋Š” HashSet<E> ๊ฐ์ฒด ์•ˆ์— ํ•ด๋‹น ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ true/false๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.

iterator( )๋Š” Set<E> ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ 1๊ฐœ์”ฉ ๊บผ๋‚ด ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ ์—†์–ด์„œ List<E> ๊ฐ์ฒด์ฒ˜๋Ÿผ for ๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฝ”๋“œ์—์„œ hset1์€ string ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ Iterator์˜ ํƒ€์ž…์€ <String>์ด ๋œ๋‹ค.

hasNext( ) ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ์œผ๋กœ ๊ฐ€๋ฆฌํ‚ฌ ์›์†Œ์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๋ถˆ๋ฆฌ์–ธ์œผ๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์ด ๊ฐ’์ด false์ผ ๋•Œ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ฝ์€ ๊ฒƒ์ด๋‹ค. next( ) ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ ์›์†Œ ์œ„์น˜๋กœ ๊ฐ€์„œ ์ฝ์€ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

Iterator<E> ๊ฐ์ฒด๊ฐ€ ์ฒ˜์Œ์— ์ƒ์„ฑ๋˜๋ฉด ์ฒซ ์›์†Œ ๋ฐ”๋กœ ์ด์ „์˜ ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒซ ๋ฒˆ์งธ ์›์†Ÿ๊ฐ’์„ ์ฝ์œผ๋Ÿฌ๋ฉด iterator.hasNext๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

 

 

 

• toArray(), toArray(T[] t)

: ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

Object[] objArray = hset1.toArray();
System.out.println(Arrays.toString(objArray)); // [a b c]

Object[] strArray1 = hset1.toArray(new String[0]);
System.out.println(Arrays.toString(strArray1)); // [a b c]

Object[] strArray2 = hset1.toArray(new String[5]);
System.out.println(Arrays.toString(strArray2)); // [a b c null null]
toArray( ) ๋ฉ”์„œ๋“œ๋Š” HashSet<E> ๋‚ด์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ๋‹ด๋Š” Object[ ]์„ ๋ฆฌํ„ดํ•œ๋‹ค. HashSet<E>์˜ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ๋„˜๊ฒจ ์ฃผ๋ฉด ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ™•์žฅ๋œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ํฐ ๋ฐฐ์—ด์„ ๋„˜๊ฒจ์ฃผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด ์•ž์—์„œ ์ฑ„์šด ํ›„ ๋ฆฌํ„ดํ•œ๋‹ค.

 

 

 

• HashSet์˜ ์ค‘๋ณต ํ™•์ธ

HashSet์€ ๋‚ด๋ถ€์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฒ„ํ‚ท์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•  ๋•Œ, ๊ฐ์ฒด์˜ hashCode( )๋ฅผ ์ด์šฉํ•ด ์–ด๋А ๋ฒ„ํ‚ท์— ๋“ค์–ด๊ฐˆ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. ๋งŒ์•ฝ ์ด๋ฏธ ๊ฐ™์€ ๋ฒ„ํ‚ท์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด, hashCode( ) ๊ฐ’์ด ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ ๋‹ค์Œ equals( ) ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•œ๋‹ค. equals๋Š” ์‹ค์ œ ๊ฐ’์ด ๊ฐ™์€์ง€ ํ™•์ธํ•œ๋‹ค. equals() ๋ฉ”์„œ๋“œ๊ฐ€ true๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด ๋‘ ๊ฐ์ฒด๋Š” ๋™์ผํ•œ ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค.

 

 

 


 

 

 

โœ”๏ธ   LinkedHashSet<E>_ 662p

 

• LinkedHashSet<E>

: HashSet<E>์˜ ์ž์‹ ํด๋ž˜์Šค๋กœ HashSet<E>์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ •๋ณด๋งŒ์„ ์ถ”๊ฐ€๋กœ ๊ฐ–๊ณ  ์žˆ๋Š” ์ปฌ๋ ‰์…˜์ด๋ฉฐ, ์ž…๋ ฅ๋œ ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.

Set<String> linkedSet1 = new LinkedHashSet<>();

linkedSet1.add("a");
linkedSet1.add("b");
linkedSet1.add("c");

System.out.println(linkedSet1.toString()); // [a, b, c]

 

 

 


 

 

 

โœ”๏ธ   TreeSet<E>_ 662p

 

• TreeSet<E>

: ๊ณตํ†ต์ ์ธ Set<E>์˜ ๊ธฐ๋Šฅ์— ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์ •๋ ฌ ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ์ปฌ๋ ‰์…˜์ด๋‹ค.

 

• TreeSet<E>์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

๊ตฌ๋ถ„ ๋ฆฌํ„ดํƒ€์ž… ๋ฉ”์„œ๋“œ๋ช… ๊ธฐ๋Šฅ
๋ฐ์ดํ„ฐ
๊ฒ€์ƒ‰
E first() Set ์›์†Œ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์›์†Ÿ๊ฐ’ ๋ฆฌํ„ด
E last() Set ์›์†Œ ์ค‘ ๊ฐ€์žฅ ํฐ ์›์†Ÿ๊ฐ’ ๋ฆฌํ„ด
E lower(E element) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์›์†Œ๋ณด๋‹ค ์ž‘์€ ๊ฐ€์žฅ ํฐ ์ˆ˜
E higher(E element) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์›์†Œ๋ณด๋‹ค ํฐ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜
E floor (E element) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์›์†Œ๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ€์žฅ ํฐ์ˆ˜
E ceiling (E element) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋œ ์›์†Œ๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฐ ๊ฐ€์žฅ ์ž‘์€์ˆ˜
๋ฐ์ดํ„ฐ
๊บผ๋‚ด๊ธฐ
E pollFirst() Set ์›์†Œ๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์›์†Ÿ๊ฐ’์„ ๊บผ๋‚ด ๋ฆฌํ„ด
E pollLast() Set ์›์†Œ๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ ์›์†Ÿ๊ฐ’์„ ๊บผ๋‚ด ๋ฆฌํ„ด
๋ฐ์ดํ„ฐ
๋ถ€๋ถ„ ์ง‘ํ•ฉ
์ƒ์„ฑ
SortedSet<E> headSet(E toElement) toElement ๋ฏธ๋งŒ์ธ ๋ชจ๋“  ์›์†Œ๋กœ ๊ตฌ์„ฑ๋œ Set์„ ๋ฆฌํ„ด
NavigableSet<E> headSet(E toElement, boolean inclusive) toElement ๋ฏธ๋งŒ/์ดํ•˜์ธ ๋ชจ๋“  ์›์†Œ๋กœ ๊ตฌ์„ฑ๋œ Set์„ ๋ฆฌํ„ด(inclusive=true์ด๋ฉด toElement ํฌํ•จ, inclusive=false์ด๋ฉด toElement ๋ฏธํฌํ•จ)
SortedSet<E> tailSet(E fromElement, boolean inclusive) toElement ์ด์ƒ์ธ ๋ชจ๋“  ์›์†Œ๋กœ ๊ตฌ์„ฑ๋œ Set์„ ๋ฆฌํ„ด(fromElement ํฌํ•จ)
NabigableSet<E> tailSet(E fromElement, E toElement) fromElement ์ดˆ๊ณผ/์ด์ƒ์ธ ๋ชจ๋“  ์›์†Œ๋กœ ๊ตฌ์„ฑ๋œ Set์„ ๋ฆฌํ„ด(inclusive=true์ด๋ฉด fromElementํฌํ•จ, inclusive=false์ด๋ฉด fromElement ๋ฏธํฌํ•จ)
SortedSet<E> subSet(E fromElement, E toElement) fromElement ์ด์ƒ toElement ๋ฏธ๋งŒ์ธ ์›์†Œ๋“ค๋กœ ์ด๋ค„์ง„ Set์„ ๋ฆฌํ„ด(fromElementํฌํ•จ, toElement ๋ฏธํฌํ•จ)
NavigableSet<E> subSet(E fromElement, boolean frominclusive, E toElement, boolean toinclusive) fromElement ์ดˆ๊ณผ/์ด์ƒ toElement ๋ฏธ๋งŒ/ ์ดํ•˜์ธ ์›์†Œ๋“ค๋กœ ์ด๋ค„์ง„ Set์„ ๋ฆฌํ„ด(fromclusive=true/false์ด๋ฉด fromElement ํฌํ•จ/๋ฏธํฌํ•จ, toinclusive=true/false์ด๋ฉด toElement ํฌํ•จ/๋ฏธํฌํ•จ)
๋ฐ์ดํ„ฐ ์ •๋ ฌ NavigableSet<E> descendingSet() ๋‚ด๋ฆผ์ฐจ์ˆœ์˜ ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋ผ ํ˜„์žฌ ์ •๋ ฌ ๊ธฐ์ค€์„ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜

 

 

• TreeSet<E>์—์„œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ๋น„๊ต

TreeSet<Integer> treeSet1 = new TreeSet<Integer>();
Integer intValue1 = new Integer(20);
Integer intValue2 = new Integer(10);

treeSet1.add(intValue1);
treeSet1.add(intValue2);

System.out.println(treeSet1.toString());
์ž๋ฐ”๊ฐ€ ์ด๋ฏธ ํด๋ ˆ์Šค์— ํฌ๊ธฐ ๋น„๊ต ๊ธฐ์ค€์„ ์ž‘์„ฑํ•ด ๋†“์•„์„œ ์‰ฝ๊ฒŒ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ž๋ฐ”๊ฐ€ ์ •ํ•ด๋‘” ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

 

TreeSet<MyComparableClass> treeSet1 = new TreeSet<MyComparableClass>();
MyComparableClass myComparableClass1 = new MyComparableClass(2, 5);
MyComparableClass myComparableClass2 = new MyComparableClass(3, 3);

treeSet1.add(myComparableClass1);
treeSet1.add(myComparableClass2);

for (MyComparableClass mcc : treeSet1) {
    System.out.println(mcc.data1);
}
๋ฐ์ดํ„ฐ๋“ค์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์—†์–ด, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. treeSet<E>์— ์ €์žฅ๋˜๋Š” ๋ชจ๋“  ๊ฐ์ฒด๋Š” ํฌ๊ธฐ ๋น„๊ต์˜ ๊ธฐ์ค€์ด ์ œ๊ณต๋˜์–ด์•ผํ•œ๋‹ค.

ํฌ๊ธฐ ๋น„๊ต์˜ ๊ธฐ์ค€์„ ์ œ๊ณตํ•˜๋Š” ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€, java.lang ํŒจํ‚ค์ง€์˜ Comparable<T> ์ œ๋„ค๋ฆญ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. CompareTo ๋ฉ”์„œ๋“œ๋Š” ๋‘ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ˜„์žฌ ๊ฐ์ฒด๊ฐ€ ๋” ์ž‘์œผ๋ฉด -1, ๊ฐ™์œผ๋ฉด 0, ๋” ํฌ๋ฉด 1์„ ๋ฆฌํ„ดํ•œ๋‹ค.

์œ„์˜ ์ฝ”๋“œ์—์„œ ์ถ”๊ฐ€๋œ 2์™€ 3์„ ๋น„๊ตํ•˜๊ณ  data1์— ์ •๋ ฌ๋  ๊ฒƒ์ด๋‹ค. ๋” ์ž‘์€ ์ˆœ์„œ๋ถ€ํ„ฐ ๋ฐฐ์น˜๋˜๋ฏ€๋กœ 2 -> 3 ์ˆœ์„œ๋กœ ๋ฐฐ์น˜๋  ๊ฒƒ์ด๋‹ค.

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ TreeSet<E> ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Comparator<T> ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Comparable<T>๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ํ•œ ๋ฒˆ๋งŒ ์ •๋ ฌ ๊ธฐ์ค€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Comparator<T> ๋Š” TreeSet ์ƒ์„ฑ ์‹œ ์›ํ•˜๋Š” ์ •๋ ฌ ๊ธฐ์ค€์„ ๋งˆ์Œ๋Œ€๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์™ธ๋ถ€์—์„œ ์ถ”๊ฐ€๋กœ ์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

+ Recent posts