오봉이와 함께하는 개발 블로그
컬렉션 프레임워크 - Set(HashSet) & Iterator 본문
728x90
Algorithmday_3 정리 (2021.11.30 화요일)
Set
- Set컬렉션
- Set인터페이스
- 수학의 집합에 비유
- 저장 순서가 유지되지 않음
- 객체 중복 저장 불가
- 구현 클래스 : HashSet, LinkedHashSet, TreeSet
- 전체 객체를 대상으로 한 번씩 반복해 가져오는 반복자(Iterator) 제공
- 인덱스로 객체를 검색해서 가져오는 메소드 없음
- get() 메소드 없음
Iterator
- java.util 패키지의 Iterator<E> 인터페이스
- 컬렉션 프레임워크에서 컬렉션에 저장된 요소들을 읽어 오는 방법을 표준화한 것
- 요소가 순서대로 저장된 컬렉션에서 요소를 순차적으로 검색할 때 사용
- Vector<Integer> v = new Vector<Integer>();
- Iterator<Integer> it = v.iterator();
- 벡터 v의 요소를 순차적으로 검색할 iterator 객체 반환
- it.hasNext()
- it.next()
Set 예제
HashSetEx.java
public class HashSetEx {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
// 중복 값은 한 번만 저장
set.add("Java");
set.add("JDBC");
set.add("Servlet/JSP");
set.add("Java");
set.add("MyBatis");
System.out.println("총 객체 수 : " + set.size()); // 총 객체 수 : 4
System.out.println();
Iterator<String> iterator = set.iterator(); // 전체 객체를 대상으로 한 번씩 반복해 가져오는 반복자
while (iterator.hasNext()) { // 들어있는 객체 수 만큼 반복
System.out.println(iterator.next());
}
// Java
// JDBC
// MyBatis
// Servlet/JSP
System.out.println();
set.remove("JDBC");
set.remove("MyBatis");
for(String element : set) {
System.out.println(element);
}
// Java
// Servlet/JSP
System.out.println();
set.clear();
if(set.isEmpty()) {
System.out.println("비어 있음");
}
// 비어 있음
}
}
HashSetLotto.java
public class HashSetLotto {
public static void main(String[] args) {
// 중복 값 저장 하지 않는 특성 이용하여 로또 번호 생성
Set<Integer> set = new HashSet<Integer>();
int count = 0;
for(; set.size() < 6;) {
count++;
int num = (int)(Math.random()*45) + 1;
set.add(num);
System.out.println(count);
}
System.out.println("Set");
System.out.println(set);
// LinkedList 생성되며 동시에 값 할당
LinkedList<Integer> list = new LinkedList<Integer>(set);
System.out.println("List");
System.out.println(list);
System.out.println("Reverse");
Collections.reverse(list); // 반대 인덱스부터 출력
System.out.println(list);
System.out.println("Sorted List"); // 오룸차순 정렬
Collections.sort(list);
System.out.println(list);
System.out.println("Sorted List Reverse");
Collections.reverse(list); // 정렬 후 사용하면 내림차순 정렬 가능
System.out.println(list);
}
}
728x90
'알고리즘 & 자료구조 & 네트워크' 카테고리의 다른 글
트리(Tree) (0) | 2021.11.30 |
---|---|
컬렉션 프레임워크 - Map(HashMap) (0) | 2021.11.30 |
컬렉션 프레임워크 - Vector (0) | 2021.11.30 |
컬렉션 프레임워크 - LinkedList (0) | 2021.11.30 |
컬렉션 프레임워크 - ArrayList (0) | 2021.11.30 |
Comments