[JAVA] 자바 - Set<E> 클래스 (HashSet / LinkedHashSet / TreeSet)
by mini_min[JAVA] 자바
- Set<E> 클래스
✔️ Set<E> 클래스
순서를 유지하지 않는 데이터의 집합이다.
순서도 안지키고 중복값도 허용하지 않는다. (ArrayList와 완전 다름)
하나의 null 만 저장할 수 있다.
◾ 주요 구현 클래스 : HashSet, LinkedHashSet, TreeSet
◾ 주요 메소드
💡 당연하게도, Set<E>클래스는 순서가 없기 때문에 index 메소드는 사용하지 못한다.
Set<String> set = new HashSet<>();
//순서가 중요하지 않아서 인덱스로 데이터 추가xx
set.add("서울");
set.add("부산");
set.add("대구");
set.add("광주");
set.add("인천");
set.add("대전");
set.add("서울"); //기존 서울을 덮는다. 중복 허용하지 않음
System.out.println(set); //등록 순서로 출력되지 않음
✔️ LinkedHashSet 클래스
HashSet 의 하위 클래스이다. 해쉬테이블 + 링크드 리스트를 구현한 클래스로 추가하는 순서대로 저장이 가능하다!
❌ 단, 중복값은 허용하지 않음 .
Set<String> set = new LinkedHashSet<>();
set.add("서울");
set.add("부산");
set.add("대구");
set.add("광주");
set.add("인천");
set.add("대전");
set.add("서울"); //중복 데이터는 기존 데이터를 덮는다.
System.out.println(set);
✔️ TreeSet 클래스
SortedSet의 구현 클래스이다. 데이터를 자동으로 정렬해주는 기능이 있지만, Comparable 인터페이스를 구현한 클래스에서만 정렬 기능이 가능하다. (모든 클래스에서 가능한게 아님)
❌ 단, 중복값은 허용하지 않음 .
Set<String> set = new TreeSet<>();
set.add("서울");
set.add("부산");
set.add("대구");
set.add("광주");
set.add("인천");
set.add("대전");
set.add("서울"); //중복 데이터는 기존 데이터를 덮는다.
//가나다라마바사...순서
//넣기만하면 자동 정렬
System.out.println(set);
✔️ Set 클래스로 로또 프로그램 만들기
무작위 순서로 출력하는 Set 클래스 이용
public static Set<Integer> lotto() {
Set<Integer> set = new TreeSet<>();
while(set.size() < 6) {
set.add((int)(Math.random()*45)+1));
}
return set;
}
'Java' 카테고리의 다른 글
[JAVA] 자바 - Properties (0) | 2022.08.01 |
---|---|
[JAVA] 자바 - Map (HashMap) / TreeMap (0) | 2022.08.01 |
[JAVA] 자바 - LinkedList<E> 클래스/Stack 클래스 (0) | 2022.07.29 |
[JAVA] 자바 - Vector<E> 클래스 (0) | 2022.07.29 |
[JAVA] 자바 - 제네릭 상속 관계 (ex. Number - Integer) (0) | 2022.07.28 |
블로그의 정보
개발자 미니민의 개발로그
mini_min