본문 바로가기
JAVA

[JAVA 개념6] 컬렉션 프레임워크2 (Set)

by 자유데이터 2018. 11. 13.
반응형

3.Set 컬렉션
: 순서가 유지되지 않고 중복을 허용하지 않는다.
: 데이터가 존재하냐 안하냐를 확인할때 사용한다.
: null이 저장 가능한데 하나만 가능하다.

-주요 메소드

기능
메소드
설명
객체 추가
boolean add(E e)
주어진 객체를 저장, 객체가 성공적으로 저장되면 true를 리턴, 중복이면 false를 리턴
객체 검색



boolean contains(Object o)
주어진 객체가 저장되어 있는지 여부
isEmpty()
컬렉션이 비어 있는지 조사
Iterator<E> iterator()
저장된 객체를 한 번씩 가져오는 반복자 리턴
int size()
저장되어 있는 전체 객체 수 리턴
객체 삭제

void clear()
저장된 모든 객체를 삭제
boolean remove(Object o)
주어진 객체를 삭제
-Set 종류

클래스
특징
HashSet
순서가 필요없는 데이터를 hash table에 저장. Set 중에 가장 성능이 좋음.
TreeSet
저장된 데이터의 값에 따라 정렬됨. red-black tree 타입으로 값이 저장. HashSet보다 성능 느림.
LinkedHashSet
연결된 목록 타입으로 구현된 hash table에 데이터 저장. 순서에 따라 값이 정렬. 가장 느림.
Hash가 들어가면 이중 검증이다.
Hashing : Hash funtion을 이용해서 데이터를 Hash table에 저장하고 검색하는 기법

1)HashSet

중복 체크를 위해 hashCode()와 equals()를 사용한다.
-equals 는 두 객체의 내용이 같은지, 동등성(equality) 를 비교하는 연산자
-hashCode 는 두 객체가 같은 객체인지, 동일성(identity) 를 비교하는 연산자

ex)hashCode와 equals의 개발자 정의(Comparator)

Member 클래스 정의

main 클래스

생성자를 통해 객체를 만들었어도
이름과 나이가 같을 경우 같은 객체로 설정했기 때문에
총 객체수가 한 개이다.


ex)hashSet



2)TreeSet
: Set의 기능을 가지면서 정렬의 기능도 가지고 있다.
: 데이터들이 자동으로 오름차순 정렬된다.

예제를 통해 메소드를 익히자.

ex)기본 메소드


ex)TreeSet 내림차순


ex)subSet 메소드

forever가 없는 이유는 f이후의 단어이기 때문이다.

반응형

'JAVA' 카테고리의 다른 글

[JAVA 개념8] 제네릭  (0) 2018.11.13
[JAVA 개념7] 컬렉션 프레임워크3 (Map)  (0) 2018.11.13
[JAVA 개념5] 컬렉션 프레임워크1 (개념과 List)  (0) 2018.11.12
[JAVA 개념4] 예외처리  (0) 2018.11.12
[JAVA 개념3]인터페이스  (0) 2018.11.11

댓글