자바 컬렉션 프레임워크(Set)

웅평·2023년 12월 10일

Set

  • 데이터의 중복 허용 x

HashSet

  • 순서가 없다

HashSet 생성

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

추가

        set.add("삼겹살");
        set.add("김치");
        set.add("김치");
        set.add("김치");
        set.add("상추");
        set.add("소금");

크기

System.out.println(set.size());

문자열 확인

        if (set.contains("삼겹살")) {
            System.out.println("삼겹살 사러 출반");
        }

삭제

set.remove("삼겹살");

전체 삭제

set.clear();

순서를 보장하려면 LinkedHashSet를 사용해야 한다

LinkedHashSet

  • 순서가 있다
LinkedHashSet inSet2 = new LinkedHashSet<>();
inSet2.add(3);
inSet2.add(1);
inSet2.add(5);
inSet2.add(13);
inSet2.add(1);

Hashset과 사용법이 같고 차이점은 순서를 보장한다

TreeSet

  • 항상 정렬된 상태로 저장

TreeSet 선언

TreeSet<Integer> set1 = new TreeSet<Integer>();//TreeSet생성
TreeSet<Integer> set2 = new TreeSet<>();//new에서 타입 파라미터 생략가능
TreeSet<Integer> set3 = new TreeSet<Integer>(set1);//set1의 모든 값을 가진 TreeSet생성
TreeSet<Integer> set4 = new TreeSet<Integer>(Arrays.asList(1,2,3));//초기값 지정

TreeSet 값 추가

TreeSet<Integer> set = new TreeSet<Integer>();//TreeSet생성
set.add(7); //값추가
set.add(4);
set.add(9);
set.add(1);
set.add(5);

TreeSet에 값이 추가되는 과정

TreeSet 값 삭제

TreeSet<Integer> set = new TreeSet<Integer>();//TreeSet생성
set.remove(1);//값 1 제거
set.clear();//모든 값 제거

TreeSet 값 출력

TreeSet<Integer> set = new TreeSet<Integer>(Arrays.asList(4,2,3));//초기값 지정
System.out.println(set); //전체출력 [2,3,4]
System.out.println(set.first());//최소값 출력
System.out.println(set.last());//최대값 출력
System.out.println(set.higher(3));//입력값보다 큰 데이터중 최소값 출력 없으면 null
System.out.println(set.lower(3));//입력값보다 작은 데이터중 최대값 출력 없으면 null
		
Iterator iter = set.iterator();	// Iterator 사용
while(iter.hasNext()) {//값이 있으면 true 없으면 false
    System.out.println(iter.next());
}

국비학원에서 배운것과 따로 공부한 것을 정리한 것입니다

참고
나도코딩 유튜브
https://coding-factory.tistory.com/555

0개의 댓글