728x90
Set 컬렉션은 저장 순서가 유지되지 않는다. 또한 객첼르 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있다.
Set 컬렉션에는 HashSet, LinkedHashSet, TreeSet 등이 있는데, 이번에는 HashSet에 대해 중점적으로 살펴보도록 하겠다.
먼저 Set 인터페이스의 메소드들을 살펴보자.
기능 | 메소드 | 설명 |
객체 추가 | boolean add(E e) | 주어진 객체를 저장, 객체가 성공적으로 저장되면 true를 리턴하고 중복 객체면 false 리턴 |
객체검색 | boolean contains(Object o) | 주어진 객체가 저장되어 있는지 여부 |
isEmpty() | 컬렉션이 비어 있는지 조사 | |
Iterator<E> iterator() | 저장된 객체를 한 번씩 가져오는 반복자 리턴 | |
int size() | 저장되어 있는 전체 객체 수 리턴 | |
객체삭제 | void clear() | 저장된 모든 객체를 삭제 |
boolean remove(Object e) | 주어진 객체를 삭제 |
HashSet은 Set 인터페이스의 구현 클래스이다. HashSet을 생성하기 위해서는 다음과 같이 기본 생성자를 호출하면된다.
Set<E> set = new HashSet<E>();
HashSet은 객체들을 순서 없이 저장하고 동일한 객체는 중복 저장하지 않는다.
간단한 예제를 살펴보자
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("Java");
set.add("JDBC");
set.add("Servlet/JSP");
set.add("Java");
set.add("iBatis");
int size = set.size();
System.out.println("총 객체 수 : " + size);
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
String element = iterator.next();
System.out.println("\t" + element);
}
set.remove("JDBC");
set.remove("iBatis");
System.out.println("총 객체 수 : " + set.size());
iterator = set.iterator();
while (iterator.hasNext()){
String element = iterator.next();
System.out.println("\t" + element);
}
set.clear();
if(set.isEmpty()) {
System.out.println("다 비어있음");
}
}
728x90
'자료구조' 카테고리의 다른 글
LinkedList (0) | 2021.02.07 |
---|---|
Arraylist (0) | 2021.02.07 |