순서 없음: 요소들이 저장되는 순서를 보장하지 않습니다.
중복 불허: 동일한 요소가 중복되어 저장되지 않습니다.
클래스형 자료형만 사용 가능: 기본 자료형이 아닌 클래스형 자료형만 사용할 수 있습니다.
package ex02.collection.set;
import java.util.*;
public class MainEntry {
public static void main(String[] args) {
// 문자열을 저장하는 HashSet 생성
HashSet<String> hs = new HashSet<String>();
// 요소 추가
hs.add("키보드");
hs.add("마우스");
hs.add("컵");
hs.add("볼펜");
hs.add("노트북");
hs.add("키보드"); // 중복된 요소
System.out.println("요소의 개수 : " + hs.size()); // 중복 허용되지 않음
System.out.println(hs); // 순서 없음
// 정수를 저장하는 HashSet 생성
HashSet<Integer> hs2 = new HashSet<>();
hs2.add(100);
hs2.add(3);
hs2.add(1000);
hs2.add(1000); // 중복된 요소
System.out.println("요소의 개수 : " + hs2.size());
System.out.println(hs2);
// 다양한 타입의 요소를 저장하는 HashSet 생성
HashSet<Object> hs3 = new HashSet<>();
hs3.add(10.0);
hs3.add(300);
hs3.add(1000);
hs3.add("String Type");
System.out.println(hs3);
// Iterator를 사용하여 요소 출력
Iterator<String> it = hs.iterator();
while(it.hasNext()) {
System.out.println(it.next()); // 요소를 꺼내와서 출력
}
System.out.println();
// 다양한 타입의 HashSet 요소 출력
Iterator<Object> it3 = hs3.iterator();
while(it3.hasNext()) {
System.out.println(it3.next());
}
}
}
요수의 개수 : 5
[컵, 노트북, 볼펜, 키보드, 마우스]
요수의 개수 : 3
[3, 100, 1000]
[10.0, String Type, 1000, 300]
컵
노트북
볼펜
키보드
마우스
10.0
String Type
1000
300
순서 없음: 요소들이 저장되는 순서를 보장하지 않습니다.
중복 불허: 동일한 요소가 중복되어 저장되지 않습니다.
클래스형 자료형만 사용 가능: 기본 자료형이 아닌 클래스형 자료형만 사용할 수 있습니다.
순서 정렬: HashSet 과 다르게 TreeSet은 자동정렬을 해준다.
package ex02.set.set;
import java.util.*;
class TreeSetEx1 {
public static void main(String[] args) {
TreeSet set = new TreeSet();
String from = "a";
String to = "b";
set.add("abc");
set.add("alien");
set.add("bat");
set.add("car");
set.add("Car");
set.add("disc");
set.add("dance");
set.add("dZZZZ");
set.add("dzzzz");
set.add("elephant");
set.add("elevator");
set.add("fan");
set.add("flower");
System.out.println(set);
System.out.println("range search : from " + from + " to " + to);
System.out.println("result1 : " + set.subSet(from, to));
System.out.println("result2 : " + set.subSet(from, to + "zzz"));
System.out.println("result3 : " +set.subSet("c", "f"));
int[] score = {85, 95, 50, 35, 45, 65, 10, 100};
System.out.println(score);
for(int i=0; i < score.length; i++) {
set.add(new Integer(score[i]));
}
System.out.println(set);
System.out.println("50보다 작은 값 :" + set.headSet(new Integer(50)));
System.out.println("50보다 큰 값 :" + set.tailSet(new Integer(50)));
}
}
range search : from a to b
result1 : [abc, alien]
result2 : [abc, alien, bat]
result3 : [car, dZZZZ, dance, disc, dzzzz, elephant, elevator]