[JAVA] Set

고민정·2024년 4월 8일

JAVA

목록 보기
27/32


🎇 SET

<interface> set<interface> Collection 을 상속받는다.

  • Collection 상속받아서 사용 가능한 메서드

    • add ( ) : 자료 추가
    • size ( ) : 저장된 자료 수를 반환
    • iterator ( ) : 자료를 꺼냄
  • Iterator 의 메서드

    • hasNext( )
      collection 을 상속받기 때문에 iterator 를 사용 가능하다.
      꺼낼 자료가 있나 없나 확인할 때 사용된다.
    • next( )
      collection 을 상속받기 때문에 iterator 를 사용 가능하다.
      자료를 하나하나씩 꺼낼 때 사용된다.
  • 중복 허용 ❌

  • boolean + add( )
    같은 자료 → True
    다른 자료 → False


💡 E.g.

set 은 인터페이스기 때문에 new 연산자로 객체를 생성할 수 없다.
그래서 대신 set을 구현한 클래스인 HashSet( ) 을 이용해서 인스턴스를 만든다.

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

public class setExam {
    public static void main(String[] args) {
        Set<String> set1 = new HashSet<>();
        boolean flag1 = set1.add("Sara");
        boolean flag2 = set1.add("Anthony");
        boolean flag3 = set1.add("Sara");

        System.out.println(set1.size());    //2

        System.out.println(flag1);  //true, the first is always true
        System.out.println(flag2);  //true
        System.out.println(flag3);  //false

        Iterator<String> iterator = set1.iterator();
        while (iterator.hasNext()){
            String str = iterator.next();
            System.out.println(str);
        }

    }
}


		boolean flag1 = set1.add("Sara");
        boolean flag2 = set1.add("Anthony");
        boolean flag3 = set1.add("Sara");
        
        System.out.println(set1.size());

set 은 중복이 허용되지 않기 때문에 flag3 의 Sara 는 인정되지 않는다.

따라서 flag3 은 false 가 반환되었고
set1.size( ) 는 2를 반환했다.


이제 set 에 저장된 자료를 하나하나씩 꺼내기 위해 iterator 를 사용한다.
		Iterator<String> iterator = set1.iterator();
        while (iterator.hasNext()){
            String str = iterator.next();
            System.out.println(str);
            }

hasNext() 로 자료가 남아있을 때 까지 while 문을 돌린다.
next() 로 자료를 하나하나 Sting 에 저장해주고 출력해준다.

0개의 댓글