본문 바로가기

JAVA

Set (집합)

import java.util.HashSet; - 기능 호출

 

Set - 집합 / 교집합, 합집합, 차집합

 

import java.util.Arrays;
import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<String> HI = new HashSet<>(Arrays.asList("H", "E", "L", "L", "O"));

        System.out.println(HI);

    }
}
//[E, H, L, O]        //중복이 허용 안되고 순서가 없어 이렇게 출력됨

집합 자료형 특징은

중복 허용 x

순서없음 

 

*중복 허용이 안되어 중복을 제거하는 용도로 많이 사용됨


기능 소개

retainAll - 교집합 

 

import java.util.Arrays;
import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<Integer> num1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 6));
        HashSet<Integer> num2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8, 9));

        HashSet<Integer> n1 = new HashSet<>(num1); //복사 객체를 만들어준다 *안하고 num1로 해도 값은 잘 나옴
        n1.retainAll(num2);          //retainAll은 교집합 중복된 값만 출력

        System.out.println(n1);

    }
}
//[4, 5, 6]

addAll - 합집합 

 

import java.util.Arrays;
import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<Integer> num1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 6));
        HashSet<Integer> num2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8, 9));

        HashSet<Integer> n1 = new HashSet<>(num1); //복사 객체를 만들어준다 *안하고 num1로 해도 값은 잘 나옴
        n1.addAll(num2);       //addAll은 합집합이여서 중복된 값은 하나로 합쳐지고 나머지 값들이 추가 됨

        System.out.println(n1);

    }
}
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

removeAll - 차집합

 

import java.util.Arrays;
import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<Integer> num1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 6));
        HashSet<Integer> num2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8, 9));

        HashSet<Integer> n1 = new HashSet<>(num1); //복사 객체를 만들어준다 *안하고 num1로 해도 값은 잘 나옴
        n1.removeAll(num2);        //rmoveAll은 차집합 중복된 값이 제거된 n1의 값이 출력됨

        System.out.println(n1);

    }
}
//[1, 2, 3]

add - 값 추가하기

import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<String> animal = new HashSet<>();

        animal.add("사자");
        animal.add("호랑이");
        animal.add("코끼리");

        System.out.println(animal);

    }
}
//[호랑이, 코끼리. 사자]      //순서대로 출력 안됨 *집합 자료형의 특징

 


addAll -  값 한 번에 추가하기 / *합집합

 

import java.util.Arrays;
import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<String> animal = new HashSet<>();

        animal.add("사자");
        animal.addAll(Arrays.asList("호랑이", "코끼리"));
        //addAll 기능을 통해 한번에 추가 가능 단! Arrays.asList 입력 해줘야함

        System.out.println(animal);

    }
}
//[호랑이, 코끼리. 사자]

remove - 특정 값 제거하기

 

import java.util.Arrays;
import java.util.HashSet;

public class zzzz {
    public static void main(String[] args) {

        HashSet<String> animal = new HashSet<>();

        animal.add("사자");
        animal.addAll(Arrays.asList("호랑이", "코끼리"));
        animal.remove("사자"); //remave를 통해 제거 가능

        System.out.println(animal);  //사자가 제거되고 나머지 값들이 출력

    }
}
//[호랑이, 코끼리] 

Set.of() - 수정 불가한 Set

// 수정 불가한 Set
Set<String> set = Set.of("spring", "java", "html");

set.add("css"); // 오류 발생

// 수정 하고 싶은 경우
Set<String> set2 = new HashSet<>(set);

set2.add("css") // 추가 가능
반응형

'JAVA' 카테고리의 다른 글

switch/case  (0) 2022.10.13
if (참, 거짓)  (0) 2022.10.13
형 변환, final  (0) 2022.10.12
Map (Key, Value)  (0) 2022.10.11
ArrayList (리스트) + Generics<> (제네릭스)  (0) 2022.10.07