Set-HashSet (보완 필요)
2022. 3. 26. 13:59ㆍjava/java
Set
- 순서도 없고 중복도 없는 자료구조 interface data type
이기에 set(); 으로 객체 생성을 하지 못하고 새로 정의
하거나 이미 정의 되어져있는 클래스를 생성해서 써야한다.
hashset은 정렬할 필요가 없기 때문에 가장 속도가 빠르다
package javaUtil;
import java.util.HashSet;
import java.util.Set;
public class BoxExam {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
boolean flag1 = set1.add("kang");
boolean flag2 = set1.add("kim");
boolean flag3 = set1.add("kang");
System.out.println(set1.size());
}
}
set1 자료형의 메서드 add()는 boolean을 반환하기 때문에 boolean 변수를 사용했다.
set1의 개수를 구하면 3개가 아닌 2개가 나온다. kang이라는 중복을 허용하지 않기 때문이다.
package javaUtil;
import java.util.HashSet;
import java.util.Set;
public class BoxExam {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
boolean flag1 = set1.add("kang");
boolean flag2 = set1.add("kim");
boolean flag3 = set1.add("kang");
System.out.println(set1.size());
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
}
}
실제 flag들이 어떤 값을 가지고 있는지 출력해보자
flag1, flag2는 true를 반환하지만 flag3는 false를 반환한다.
package javaUtil;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class BoxExam {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
boolean flag1 = set1.add("kang");
boolean flag2 = set1.add("kim");
boolean flag3 = set1.add("kang");
System.out.println(set1.size());
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
Iterator<String> iter = set1.iterator();
while(iter.hasNext()) {
String str = iter.next();
System.out.println(str);
}
}
}
Iterator 인터페이스 객체를 생성하고 set1 의 자료를 하나씩 출력해보면 kang, kim만 나오는걸 알 수 있다.
'java > java' 카테고리의 다른 글
인터페이스 선언 (0) | 2022.04.14 |
---|---|
인터페이스의 역할 (0) | 2022.04.14 |
Generic (보완 필요) (0) | 2022.03.26 |
Object 클래스 (0) | 2022.03.26 |
자바 데이터 타입 (0) | 2022.03.13 |