본문 바로가기

Java

[Eclipse] Java HashSet

Java HashSet 란?

 

Java의 HashSet 은 Set 인터페이스를 구현한 클래스이다.

 

특징

- 순서가 없다.

- key 값도 없다.

- 중복을 허용하지 않는다.

- 어떤 data 를 묶음(집합) 으로 관리하고자 할때 사용한다.

 

ex)

HashSet<Integer> set1 = new HashSet<>();

 

 

 

기본 예제)

 

MainClass08 Class

 

해당 코드를 Debug 모드로 확인해보면

 

MainClass08 Debug

 

set1에 Integer 타입 10,20 값이 저장되었다.

 

 

 

MainClass08 Debug

하지만 중복값을 허용하지않는 HashSet 특성상 20의 value 가 존재하므로

또 20의 값을 value 를 add하려고하니 false 되며 값이 저장되지 않은 모습을 볼 수 있다.

 

 

 

MainClass08 Debug

이미 추가된 30값이 있으므로 set1.add(30) 도 두번째 선언했을때 위와 동일하게 false 된것을 볼 수 있다.

 

 

 

MainClass08 Debug

 

 

MainClass08 Debug

String 타입 set2 도 중복된 value 인 lee, park 를 넣으려고 할때 false이 리턴되는것을 볼 수 있다.

 

 

 

활용 예제)

HashSet 객체의 특성 중 중복을 허용하지 않는 특성을 이용해 ArrayList 객체의 중복값을 제거 

 

MainClass11 Class

해당 코드를 Debug 모드로 확인해보면

 

 

MainClass11 Debug

nums 의 0번째 값과 3번째 값이 같고 

nums 의 2번째 값과 5번째 값이 같은 모습을 볼수있다.

 

 

 

MainClass11 Debug

HashSet 객체에 nums 을 전달하였더니 Set 객체는 nums 객체의 중복값들을 제거하고 저장된 모습을 볼 수 있다.

 

 

Console

오름차순 정렬 한뒤 콘솔창에 출력결과이다.