Set 컬렉션 클래스
Set은 요소의 저장 순서를 유지하지 않는다, 같은 요소의 중복 저장을 허용하지 않는다.
HashSet<E> 클래스
HashSet<Integer> hs = new HashSet<>();
HashSet 클래스는 해시 알고리즘을 사용하여 검색 속도가 매우 빠르다. 이러한 HashSet 클래스는 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장한다.
HashSet의 특징
- 요소를 순서에 상관없이 저장한다.
- 중복된 값은 저장하지 않는다.
저장 순서를 유지하고 싶으면 LinkedHashSet을 사용하면 된다.
LinkedHashSet<Integer> Lhs = new LinkedHashSet<>();
해시 알고리즘(Hash Algorithm)
해시 알고리즘이란 해시 함수를 사용하여 데이터를 해시 테이블에 저장하고, 다시 그것을 검색하는 알고리즘이다.
배열과 연결리스트로 구현한다. 키 값이 해시 함수에 들어갔다 return 되면 배열의 index로 변한다. 그 후 연결 리스트에서 그 값을 찾는다.
TreeSet<E> 클래스
TreeSet<Integer> ts = new TreeSet<>();
TreeSet 클래스는 데이터가 정렬된 상태로 저장되는 이진 검색 트리(binary search tree)의 형태로 요소를 저장한다.
TreeSet은 모두 정렬된 상태이기 때문에 subSet이라는 메소드가 존재한다.
public NavigableSet<E> subSet(E fromElement, E toElement)
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
이 것은 fromElement 부터 toElement 까지 요소를 출력해 주는 것이다. 모두 정렬된 상태이기 때문에 가능하다.
출저
http://www.tcpschool.com/java/java_collectionFramework_set
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'BackEnd > JAVA 공부' 카테고리의 다른 글
스트림이란? (1) (1) | 2023.07.11 |
---|---|
람다식이란? (0) | 2023.07.09 |
자바의 컬렉션 프레임워크(Map) (1) | 2023.01.10 |
자바의 컬렉션 프레임워크(List) (0) | 2023.01.09 |
JAVA String 관련 함수 (1) | 2022.12.24 |