Published 2021. 12. 29. 20:52
728x90
반응형

HashSet이란?

Set은 객체를 중복해서 저장 불가, 하나의 null 값만 저장 가능, 저장 순서 유지 안됨

만약 요소의 저장 순서를 유지해야 한다면 JDK 1.4부터 제공하는 LinkedHashSet 클래스를 사용하면 됨

Set 인터페이스를 구현한 클래스로는 HashSet과 TreeSet이 있는데 HashSet의 경우 정렬 X, TreeSet의 경우 자동정렬

Set의 가장 큰 장점은 중복을 자동으로 제거

 


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); //초기 용량(capacity)지정
HashSet<Integer> set5 = new HashSet<Integer>(10, 0.7f); //초기 capacity,load factor지정
HashSet<Integer> set6 = new HashSet<Integer>(Arrays.asList(1,2,3)); //초기값 지정

 

 


HashSet 값 추가

HashSet<Integer> set = new HashSet<Integer>(); //HashSet생성
set.add(1); //값 추가
set.add(2);
set.add(3);

 


HashSet 값 삭제

HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3)); //HashSet생성
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)); //HashSet생성

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

 


HashSet 값 검색

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

 


참고 자료

https://coding-factory.tistory.com/551

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[Java] 람다식이란?  (0) 2022.01.28
HashMap 사용 예제  (0) 2021.12.30
ArrayList 사용 예제  (0) 2021.12.28
자바 Collection(List, Set, Map) 비교  (0) 2021.12.27
java 티베로 연결  (0) 2021.10.15
복사했습니다!