๐Ÿ’ป ์ฝ”๋”ฉ ์ผ๊ธฐ : [JAVA] '์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(Collection Framework) - Set ์ธํ„ฐํŽ˜์ด์Šค' ํŽธ

ybkยท2024๋…„ 3์›” 19์ผ

java

๋ชฉ๋ก ๋ณด๊ธฐ
32/40
post-thumbnail

๐Ÿ”” '์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(Collection Framework)- Set ์ธํ„ฐํŽ˜์ด์Šค'์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!


๐Ÿ’Ÿ HashSet

์ค‘๋ณต๋œ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ €์žฅ์ˆœ์„œ๋ฅผ ์œ ์ง€ ํ•˜์ง€ ์•Š์•„ ์ˆœ์„œ ์œ ์ง€ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด LinkedHashSet์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์„œ๋“œ์„ค๋ช…
HashSet()๋น„์–ด์žˆ๋Š” HashSet์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
HashSet(Collection c)์ฃผ์–ด์ง„ Collection์˜ ์š”์†Œ๋กœ ์ดˆ๊ธฐํ™”๋œ HashSet์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
HashSet(int initialCapacity)์ง€์ •๋œ ์ดˆ๊ธฐ ์šฉ๋Ÿ‰์œผ๋กœ HashSet์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
HashSet(int initialCapacity, float loadFactor)์ง€์ •๋œ ์ดˆ๊ธฐ ์šฉ๋Ÿ‰๊ณผ ๋กœ๋“œ ํŒฉํ„ฐ๋กœ HashSet์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
boolean add(Object o)์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
boolean addAll(Collection c)์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ด HashSet์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
void clear()์ด HashSet์—์„œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
boolean contains(Object o)์ง€์ •๋œ ์š”์†Œ๊ฐ€ ์ด HashSet์— ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
boolean containsAll(Collectionc)์ด HashSet์— ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
boolean isEmpty()์ด HashSet์ด ๋น„์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Iterator iterator()์ด HashSet์— ๋Œ€ํ•œ ๋ฐ˜๋ณต์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
boolean remove(Object o)์ง€์ •๋œ ์š”์†Œ๋ฅผ ์ด HashSet์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
boolean removeAll(Collection c)์ด HashSet์—์„œ ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
boolean retainAll(Collection c)์ด HashSet์—์„œ ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์— ํฌํ•จ๋œ ์š”์†Œ๋งŒ ์œ ์ง€ํ•˜๊ณ  ๋‹ค๋ฅธ ์š”์†Œ๋Š” ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
int size()์ด HashSet์— ์žˆ๋Š” ์š”์†Œ์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Object[ ] toArray()์ด HashSet์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Object[ ] toArray(Object[ ] a)์ด HashSet์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ง€์ •๋œ ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

import java.util.HashSet;
import java.util.Set;

public class C01HashSet {
    public static void main(String[] args) {
        Object[] objArr ={"1", "2","2","3","3","3","4","4"};
        Set set = new HashSet();

        for (int i = 0; i < objArr.length; i++){
            set.add(objArr[i]);
        }
        System.out.println(set);
    }
}
  • add( ) : ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ HashSet์— ์ด๋ฏธ ๊ฐ™์€ ๊ฐ์ฒด๊ฐ€ ์žˆ์œผ๋ฉด ์ค‘๋ณต์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐ŸŸฆ ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ ๊ตฌํ˜„ํ•˜๊ธฐ

import java.util.HashSet;
import java.util.Iterator;

public class C04HashSet {
    public static void main(String[] args) {
        HashSet setA = new HashSet();
        HashSet setB = new HashSet();
        HashSet setHab = new HashSet();
        HashSet setKyo = new HashSet();
        HashSet setCha = new HashSet();

        setA.add("1");setA.add("2");setA.add("3");setA.add("4");setA.add("5");
        System.out.println("A="+setA);

        setB.add("4");setB.add("5");setB.add("6");setB.add("7");setB.add("8");
        System.out.println("B="+setB);

        Iterator it = setB.iterator();
        while (it.hasNext()){
            Object tmp = it.next();
            if(setA.contains(tmp)) setKyo.add(tmp);
        }
//        setA.retainAll(setB); //๊ต์ง‘ํ•ฉ
        System.out.println("๊ต์ง‘ํ•ฉ = "+setKyo);


        it = setA.iterator();
        while (it.hasNext()){
            Object tmp = it.next();
            if(!setB.contains(tmp)){
                setCha.add(tmp);
            }
        }
//        setA.removeAll(setB); //์ฐจ์ง‘ํ•ฉ
        System.out.println("์ฐจ์ง‘ํ•ฉ = " +setCha);

        it = setA.iterator();
        while (it.hasNext()){
            setHab.add(it.next());
        }

        it = setB.iterator();
        while (it.hasNext()){
            setHab.add(it.next());
        }
//        setA.addAll(setB); //ํ•ฉ์ง‘ํ•ฉ
        System.out.println("ํ•ฉ์ง‘ํ•ฉ = " +setHab);
    }
}

๋งŒ์•ฝ์— ์ €์žฅ๋œ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด HashSet ๋Œ€์‹  LinkedHashSet์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import java.util.*;

public class C02HashSet {
    public static void main(String[] args) {
        Set set = new HashSet();

        for(int i = 0; set.size()<6; i++){
            int num = (int)(Math.random()*45)+1;
            set.add(num);
        }
        System.out.println(set);

        List list = new LinkedList(set);
        Collections.sort(list);
        System.out.println(list); //์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
    }
}
  • Collections ํด๋ž˜์Šค์˜ sort()๋Š” set์€ ์ง€์›๋˜์ง€ ์•Š๊ณ  list๋งŒ ์ง€์›๋˜๋ฏ€๋กœ set์„ list๋กœ ๋ณ€ํ™˜ ํ›„ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฆ equals์™€ hashCode

  • ๊ธฐ์กด์— ๊ฐ™์€ ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ๊ฐ™์€ ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฉด ์ €์žฅ, ์žˆ์œผ๋ฉด ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • boolean add(Object o)๋Š” ์ €์žฅํ•  ๊ฐ์ฒด์˜ equals()์™€ hashCode()๋ฅผ ํ˜ธ์ถœ -> equals()์™€ hashCode()๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
import java.util.HashSet;
import java.util.Objects;

public class C03HashSet {
    public static void main(String[] args) {
        HashSet set = new HashSet();

        set.add("abc");
        set.add("abc"); //์ค‘๋ณต
        set.add(new Person("David", 10));
        set.add(new Person("David", 10)); //์ค‘๋ณต

        System.out.println(set);
    }
}

class Person{
    String name;
    int age;

    Person(String name, int age){
        this.name = name;
        this.age=age;
    }

    public String toString(){
        return name + " : " + age;
    }

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof Person person)) return false;
        Person p = (Person) o;

        //๋‚˜ ์ž์‹ ์˜ ์ด๋ฆ„๊ณผ ๋‚˜์ด๋ฅผ p์™€ ๋น„๊ต
        return this.name.equals(p.name)&&this.age==p.age;
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

๐Ÿ’Ÿ TreeSet

  • ๋ฒ”์œ„ ๊ฒ€์ƒ‰๊ณผ ์ •๋ ฌ์— ์œ ๋ฆฌํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. TreeSet์€ ์“ฐ๋ฉด ์ •๋ ฌ์€ ์ž๋™์œผ๋กœ ๋ฉ๋‹ˆ๋‹ค.
  • ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฆ ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ
์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ์ด๋ฉฐ ๊ฐ ๋…ธ๋“œ์— ์ตœ๋Œ€ 2๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ํ™•์žฅํ•ด ๋‚˜๊ฐ€ ๋ถ€๋ชจ-์ž์‹๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

class TreeNode{
    TreeNode left;
    Object element;
    TreeNode right;
}

์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ๋…ธ๋“œ์˜ ์™ผ์ชฝ์—๋Š” ๋ถ€๋ชจ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ์˜ค๋ฅธ์ชฝ์—๋Š” ํฐ ๊ฐ’์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ์ด์ง„ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

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

๐ŸŸฆ TreeSet์˜ ์ƒ์„ฑ์ž์™€ ๋ฉ”์„œ๋“œ

์ƒ์„ฑ์ž์™€ ๋ฉ”์„œ๋“œ์„ค๋ช…
TreeSet()๋น„์–ด ์žˆ๋Š” TreeSet์„ ์ƒ์„ฑํ•œ๋‹ค.
TreeSet(Collection<? extends E> c)์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” TreeSet์„ ์ƒ์„ฑํ•œ๋‹ค.
TreeSet(Comparator<? super E> comparator)์š”์†Œ๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  Comparator๋ฅผ ์ง€์ •ํ•˜์—ฌ TreeSet์„ ์ƒ์„ฑํ•œ๋‹ค.
TreeSet(SortedSet<E> s)์ง€์ •๋œ SortedSet์˜ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” TreeSet์„ ์ƒ์„ฑํ•œ๋‹ค.
boolean add(E e)์ง€์ •๋œ ์š”์†Œ๋ฅผ TreeSet์— ์ถ”๊ฐ€ํ•œ๋‹ค.
boolean addAll(Collection<? extends E> c)์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ TreeSet์— ์ถ”๊ฐ€ํ•œ๋‹ค.
void clear()TreeSet์—์„œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
Object clone()TreeSet์˜ ์–•์€ ๋ณต์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Comparator<? super E> comparator()TreeSet์—์„œ ์‚ฌ์šฉ ์ค‘์ธ Comparator๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
boolean contains(Object o)์ง€์ •๋œ ์š”์†Œ๊ฐ€ TreeSet์— ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.
Iterator<E> descendingIterator()์š”์†Œ์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ˆœ์„œ๋กœ ๋ฐ˜๋ณตํ•˜๋Š” Iterator๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
NavigableSet<E> descendingSet()์š”์†Œ์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ˆœ์„œ๋กœ ์ •๋ ฌ๋œ NavigableSet์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
E first()TreeSet์˜ ์ฒซ ๋ฒˆ์งธ (๊ฐ€์žฅ ์ž‘์€) ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
E floor(E e)์ฃผ์–ด์ง„ ์š”์†Œ์™€ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ€์žฅ ํฐ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
SortedSet<E> headSet(E toElement)์ง€์ •๋œ ์š”์†Œ๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
NavigableSet<E> headSet(E toElement, boolean inclusive)์ง€์ •๋œ ์š”์†Œ๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (inclusive์— ๋”ฐ๋ผ ํฌํ•จ ์—ฌ๋ถ€ ๊ฒฐ์ •)
E higher(E e)์ฃผ์–ด์ง„ ์š”์†Œ๋ณด๋‹ค ํฐ ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
boolean isEmpty()TreeSet์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
Iterator<E> iterator()์š”์†Œ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ ์ˆœ์„œ๋กœ ๋ฐ˜๋ณตํ•˜๋Š” Iterator๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
E last()TreeSet์˜ ๋งˆ์ง€๋ง‰ (๊ฐ€์žฅ ํฐ) ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
E lower(E e)์ฃผ์–ด์ง„ ์š”์†Œ๋ณด๋‹ค ์ž‘์€ ๊ฐ€์žฅ ํฐ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
E pollFirst()TreeSet์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค.
E pollLast()TreeSet์—์„œ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค.
boolean remove(Object o)์ง€์ •๋œ ์š”์†Œ๋ฅผ TreeSet์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.
int size()TreeSet์˜ ์š”์†Œ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)์ง€์ •๋œ ๋ฒ”์œ„์˜ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (fromInclusive์™€ toInclusive์— ๋”ฐ๋ผ ํฌํ•จ ์—ฌ๋ถ€ ๊ฒฐ์ •)
SortedSet<E> subSet(E fromElement, E toElement)์ง€์ •๋œ ๋ฒ”์œ„์˜ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
SortedSet<E> tailSet(E fromElement)์ง€์ •๋œ ์š”์†Œ์™€ ๊ฐ™๊ฑฐ๋‚˜ ํฐ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
NavigableSet<E> tailSet(E fromElement, boolean inclusive)์ง€์ •๋œ ์š”์†Œ์™€ ๊ฐ™๊ฑฐ๋‚˜ ํฐ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (inclusive์— ๋”ฐ๋ผ ํฌํ•จ ์—ฌ๋ถ€ ๊ฒฐ์ •)
Object[] toArray()TreeSet์˜ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
<T> T[] toArray(T[] a)TreeSet์˜ ์š”์†Œ๋ฅผ ์ง€์ •๋œ ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐ŸŸฆ TreeSet ์˜ˆ์‹œ

import java.util.TreeSet;

public class C05TreeSet {
    public static void main(String[] args) {
        TreeSet set = new TreeSet();
        String from = "b";
        String to = "d";

        set.add("abc"); set.add("alien"); set.add("bat");
        set.add("car"); set.add("Car"); set.add("disc");
        set.add("dzzzz"); set.add("dZZZZ"); set.add("fan");

        System.out.println(set);
        System.out.println("from = " + from+", to = "+to);
        System.out.println("set.subSet(b,d) = " + set.subSet(from,to));
        System.out.println("set.subSet(b,d) = " + set.subSet(from,to+"zzz")); //d๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๋“ค๊นŒ์ง€ ํฌํ•จํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋ ๋ฒ”์œ„์— "zzz"

        //์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ
        TreeSet set1 = new TreeSet();
        int[] scores = {40,30,80,90,95,85,75};

        for (int i = 0; i<scores.length;i++){
            set1.add(scores[i]);
        }
        System.out.println("50๋ณด๋‹ค ์ž‘์€ ๊ฐ’ : "+set1.headSet(50));
        System.out.println("50๋ณด๋‹ค ํฐ ๊ฐ’ : "+set1.tailSet(50));
    }
}
profile
๊ฐœ๋ฐœ์ž ์ค€๋น„์ƒ~

0๊ฐœ์˜ ๋Œ“๊ธ€