Set
특징 : 임의의 저장 순서 중복 저장 불가 : 중복이 되면 저장되지 않는다
종류 : ▷Hashset(인덱스를 갖고 있지 않다.) ▷treeset
기능 | 메소드 | 설명 |
객체추가 | boolean add(E e) | 주어진 객체를 저장하고 성공적으로 저장되면 true 중복객체면false리턴 |
객체검색 | boolean contains(Object o) | 주어진 객체가 저장되어 있는지 여부 |
isEmpty() | 컬렉션이 비어있는지 조사 | |
Iterator<E> iterator | 저장된 객체를 한번씩 가져오는 반복자 리턴 | |
int size() | 저장된 전체 객체 수 리턴 | |
객체삭제 | void clear() | 저장된 모든 객체를 삭제 |
boolean remove(Object o) | 주어진 객체를 삭제 |
중복이 안되는 데이터 저장소. (Ex : Lotto Number)
Hash Set
1.add
package hashsets;
import java.util.ArrayList;
import java.util.HashSet;
public class Ex01 {
public static void main(String[] args) {
HashSet<String> hs= new HashSet<>();
hs.add("라면"); hs.add("김밥"); hs.add("순대"); hs.add("김밥");
System.out.println("HashSet : "+hs);
ArrayList<String> arr= new ArrayList<>();
arr.add("라면"); arr.add("김밥"); arr.add("순대"); arr.add("김밥");
System.out.println("ArrayList : "+arr);
}
}
HashSet : [김밥, 순대, 라면] ArrayList : [라면, 김밥, 순대, 김밥] |
2.boolean반환 예. remove
package hashsets;
import java.util.ArrayList;
import java.util.HashSet;
public class Ex03 {
public static void main(String[] args) {
HashSet<String> hs= new HashSet<>();
boolean bool;
bool = hs.add("라면"); System.out.println(bool);
bool = hs.add("샌드위치"); System.out.println(bool);
bool = hs.add("라면"); System.out.println(bool);
bool = hs.add("김밥"); System.out.println(bool);
System.out.println("HashSet : "+hs);
System.out.println(hs.remove("라면"));
System.out.println(hs.remove("김밥"));
System.out.println("HashSet : "+hs);
}
}
true true false true HashSet : [김밥, 샌드위치, 라면] true true HashSet : [샌드위치] |
3. isEmpty, contains
package hashsets;
import java.util.HashSet;
public class Ex04 {
public static void main(String[] args) {
HashSet<String> hs= new HashSet<>();
boolean bool;
bool = hs.add("라면");
bool = hs.add("샌드위치");
bool = hs.add("라면");
bool = hs.add("김밥");
System.out.println("HashSet : "+hs);
System.out.println("isEmpty() : "+hs.isEmpty());
if(hs.contains("샌드위치1")) {
System.out.println("데이터가 존재합니다.");
}else System.out.println("데이터가 존재하지 않습니다.");
}
}
HashSet : [김밥, 샌드위치, 라면] isEmpty() : false 데이터가 존재하지 않습니다. |
4. Iterator, Collections.sort
데이터를 가지고 오는 방법
package hashsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
public class Ex05 {
public static void main(String[] args) {
HashSet<String> hs= new HashSet<>();
hs.add("1.대부");
hs.add("2.반지의제왕");
hs.add("3.겨울왕국");
hs.add("4.다크나이트");
hs.add("5.해리포터");
hs.add("6.공공의적");
for(String data : hs) {
System.out.println(data);
}
System.out.println();
Iterator<String> it = hs.iterator();
while(it.hasNext()) {
String data2 = it.next();
System.out.println(data2);
}
ArrayList<String> list = new ArrayList<>(hs);
//list.sort(null);//오름차순
//System.out.println(list);
Collections.sort(list);//오름차순
System.out.println(list);
Collections.reverse(list);//내림차순(오름차순이 되어있어야 뒤집을 수있다)
System.out.println(list);
}
}
1.대부 5.해리포터 2.반지의제왕 3.겨울왕국 6.공공의적 4.다크나이트 1.대부 5.해리포터 2.반지의제왕 3.겨울왕국 6.공공의적 4.다크나이트 [1.대부, 2.반지의제왕, 3.겨울왕국, 4.다크나이트, 5.해리포터, 6.공공의적] [6.공공의적, 5.해리포터, 4.다크나이트, 3.겨울왕국, 2.반지의제왕, 1.대부] |
5. iterator,remove(),hasNext()
hasNext() : 데이터가 있으면 true 없으면 false
package hashsets;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
public class Ex06 {
public static void main(String[] args) {
HashSet<String> hs= new HashSet<>();
hs.add("1.대부");
hs.add("2.반지의제왕");
hs.add("3.겨울왕국");
hs.add("4.다크나이트");
hs.add("5.해리포터");
hs.add("6.공공의적");
System.out.println(hs);
Scanner sc = new Scanner(System.in);
System.out.print("삭제할 책 :");
String name = sc.nextLine();
Iterator<String> it = hs.iterator();
while(it.hasNext()) {
if(name.equals(it.next())) {
System.out.println("삭제완료");
it.remove();
}
}
System.out.println(hs);
}
}
[1.대부, 5.해리포터, 2.반지의제왕, 3.겨울왕국, 6.공공의적, 4.다크나이트] 삭제할 책 :2.반지의제왕 삭제완료 [1.대부, 5.해리포터, 3.겨울왕국, 6.공공의적, 4.다크나이트] |
'코딩 공부 > Java' 카테고리의 다른 글
클래스 (0) | 2022.08.22 |
---|---|
HashMap (0) | 2022.08.21 |
Collection Framework & ArrayList (0) | 2022.08.19 |
메모리 구조와 배열 (0) | 2022.08.18 |
JAVA Random (0) | 2022.08.17 |