[Java] HashSet 사용법

Kim Ji Eun·2022년 3월 29일
0

Java

목록 보기
2/9

HashSet 이란?

HashSet은 Set 인터페이스의 구현클래스이다.
Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있다.

Set 인터페이스를 구현한 클래스로는 HashSet과 TreeSet이 있는데 HashSet의 경우 정렬을 해주지 않고 TreeSet의 경우 자동정렬 해준다는 차이점이 있다.

Set은 주머니 형태이다. 비선형 구조이기에 저장 순서가 없으며 그렇기에 인덱스도 존재하지 않는다.
그렇기에 값을 추가하거나 삭제할 때 내가 추가 혹은 삭제하고자 하는 값이 Set 내부에 있는지 검색한 뒤 추가나 삭제를 해야한다. 속도가 List 구조에 비해 느리다.

HashSet 사용법

HashSet 선언

HashSet<Integer> set1 = new HashSet<Integer>(); // HashSet 생성
HashSet<Integer> set2 = new HashSet<>(); // new에서 타입 파라미터 생략 가능
HashSet<Integer> set3 = new HashSet<Integer>(set1); // set1의 모든 값을 가진 HashSet 생성
HashSet<Integer> set4 = new HashSet<Integer>(10); // 초기 용량 지정 
HashSet<Integer> set6 = new HashSet<Integer>(Arrays.asList(1,2,3)); //초기값 지정

HashSet 값 추가, 삭제

HashSet<Integer> set = new HashSet<Integer>();//HashSet생성
set.add(1); //값 추가
set.remove(1); // 값 1 제거 
set.clear(); // 모든 값 제거 

HashSet 크기

HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));//HashSet생성
System.out.println(set.size());//set 크기 : 3

HashSet 비어있는지 확인

HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));
System.out.println(map.isEmpty());// false

HashSet 값 검색

HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));//HashSet생성
System.out.println(set.contains(1)); //set내부에 값 1이 있는지 check : true

HashSet 값 출력

Set 컬렉션을 그냥 출력하게 되면 대괄호로 묶어서 set의 전체값이 출력된다.
Set에는 인덱스로 객체를 가져오는 get(index)메소드가 없다.
대신 전체 객체를 대상으로 한번씩 반복해서 가져오는 반복자 Iterator를 제공한다.

HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));//HashSet생성

System.out.println(set); //전체출력 [1,2,3]
		
Iterator iter = set.iterator();	// Iterator 사용
while(iter.hasNext()) {//값이 있으면 true 없으면 false
    System.out.println(iter.next());
}

HashSet -> List, List -> HashSet

List<String> list = new ArrayList<>();

Set<String> set = new HashSet<>(list); // list->set

List<String> list = new ArrayList<>(set);// set->list

profile
Back-End Developer

0개의 댓글