티스토리 뷰

자료구조

자료구조 | 4-2 Set, interface

sunNprize 2022. 6. 8. 20:43

  • set으로 합집합 , 차집합 , 교집합 만들기
public class Main {
      
      public static void main(String[] args) {
            //AbstractCollection > AbstractSet 을 상속받고 있다.
            // sync X
            //Set interface를 상속 > 내부에서는 hash table 을 이용하고 있음
            //bucket 을 사용하고 있음.. > initial capacity 를 매개변수로 선언가능함 > 퍼포먼스에 영향을 준다.
            Set<MyData> setA = new HashSet<>(); //set은 순서를 보장하지 않음
            Set<MyData> setB = new HashSet<>(); //set은 순서를 보장하지 않음
            
            // 집합 A
            setA.add(new MyData(1));
            setA.add(new MyData(2));
            setA.add(new MyData(3));
            
            // 집합 B
            setB.add(new MyData(2));
            setB.add(new MyData(3));
            setB.add(new MyData(4));
            
            //A+B
            //setA.addAll(setB);
            
            //해쉬 set은 내부에서 해쉬 table 을 사용하기에 > 해쉬값이 필요함 > custom 클래스를 통해서 해쉬값을 제공해야 중복이 제거됨.
            //System.out.println("합집합 = " + setA);
            //합집합 : setA = [MyData{v=1}, MyData{v=2}, MyData{v=3}, MyData{v=4}]
            
            //차집합
            setA.removeAll(setB);
            System.out.println("차집합 = " + setA);
            //차집합 = [MyData{v=1}]
            
            //교집합
            setA.retainAll(setB);
            System.out.println("교집합 = " + setA);
            //교집합 = [MyData{v=2}, MyData{v=3}]
            
      }
      
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함