
<interface> set 은 <interface> Collection 을 상속받는다.
Collection 상속받아서 사용 가능한 메서드
Iterator 의 메서드
중복 허용 ❌
boolean + add( )
같은 자료 → True
다른 자료 → False
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를 반환했다.
Iterator<String> iterator = set1.iterator();
while (iterator.hasNext()){
String str = iterator.next();
System.out.println(str);
}
hasNext() 로 자료가 남아있을 때 까지 while 문을 돌린다.
next() 로 자료를 하나하나 Sting 에 저장해주고 출력해준다.