wisePocket

[JAVA] 기초문법 - 자료구조 컬렉션 Set 생성과 메서드 기능 이용 연습 - 25 본문

Java & Algorithm/Java

[JAVA] 기초문법 - 자료구조 컬렉션 Set 생성과 메서드 기능 이용 연습 - 25

ohnyong 2023. 7. 27. 21:14

Collection - Set

집합, 순서 없고, 중복 없다. Set에 대해 복습 해보고자 한다.

  • 순서가 보장되지 않는대신 중복을 허용하지 않는 곳에서 사용
  • 빠른 검색이 필요할 때 사용하는 클래스,같은 자료를 중복 보관할 수 없다.
  • Set 클래스(<interface임)
    • HashSet, TreeSet, LinkedHashSet이 있음
      • HashSet이 가장 성능이 좋다.
        • Hashing을 이용해서 구현한 컬렉션
      • TreeSet
        • 이진탐색트리(Red-Black Tree)의 형태로 데이터를 저장
        • 데이터 추가, 삭제에는 시간이 더 걸리지만, 검색과 정렬이 뛰어나다.
        • 기본적으로 오름차순으로 데이터를 정렬
      • LinkedHashSet
        • HashSet 클래스를 상속받은 LinkedList
        • 데이터에 삽입된 순서대로 데이터를 관리한다.
  • Method
    • .add(E e)
    • .contains(Object o)
    • .clear()
    • .equals(Object o)
    • .isEmpty();
    • .size()
    • .iterator()

 

Set (Java Platform SE 8 )

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction. The Set inter

docs.oracle.com


1. 기본 생성법

Set<E> name = new HashSet<>();
        //Set 선언 + (객체)생성
        Set<Integer> intSet = new HashSet<>();

 

2. (Hash)Set의 메서드 이용

.add(E e) : element 추가
        //add(element) 메서드로 생성한 Set에 element를 넣어보자.
        intSet.add(2);
        intSet.add(51);
        intSet.add(2);
        intSet.add(6);
        intSet.add(2);
        intSet.add(282);

.contains(Object o): element 존재 여부 반환 T or F

        //포함여부확인
        //contains
        System.out.println(intSet.contains(3));
        System.out.println(intSet.contains(2));​

.size(), .isEmpty()

        //size()
        System.out.println(intSet.size());
        //isEmpty()
        System.out.println(intSet.isEmpty());