add(T value) : 요소 추가
size() : 요소의 개수
remove(T value) : 요소 삭제 / 인덱스가 없기에 값으로밖에 접근 못한다.
contains(T value) : 요소 찾기 boolean형을 반환한다.
HashSet<String> set = new HashSet<String>();
set.add("강아지");
set.add("고양이");
set.add("거북이");
System.out.println(set.size());
System.out.println(set.add("고양이")); //중복 값이므로 false
System.out.println(set.remove(1)); //false
set.remove("거북이");
System.out.println(set);
System.out.println(set.contains("강아지"));
3
false
[고양이, 거북이, 강아지][고양이, 강아지]
true
TreeSet<Integer> set = new TreeSet<Integer>();
set.add(10);
set.add(30);
set.add(40);
set.add(20);
set.add(50);
System.out.println("TreeSet 요소목록:" + set); //TreeSet은 자동 정렬된다.
//탐색 : for / iterator
System.out.println("for문으로 탐색");
for (int n : set) {
System.out.println(n);
}
System.out.println();
System.out.println("iterator로 탐색");
Iterator<Integer> iter = set.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
System.out.println();
//TreeSet 고유 기능
System.out.println("TreeSet 고유 기능");
System.out.println(set.first()); //10
System.out.println(set.last()); //50
System.out.println(set.headSet(30)); //exclusive, 30미만의 값
System.out.println(set.tailSet(30)); //inclusive, 30이상의 값
System.out.println(set.subSet(20, 40)); //20이상 ~ 40미만
System.out.println();
//HashSet -> ArrayList
System.out.println("HashSet -> ArrayList");
ArrayList<Integer> list = new ArrayList<Integer>(set);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
TreeSet 요소목록:[10, 20, 30, 40, 50]
for문으로 탐색
10
20
30
40
50
iterator로 탐색
10
20
30
40
50
TreeSet 고유 기능
10
50
[10, 20][30, 40, 50]
[20, 30]
HashSet -> ArrayList
[10, 20, 30, 40, 50][10, 20, 30, 40, 50]