HashSet은 콜렉션의 자손 Set의 자손이다.
그러므로 순서와 중복은 신경쓰지 않는다.
순서를 유지하고 싶으면 LinkedHashSet 클래스를 사용하자
HashSet은 무슨 메서드를 가지고 있는가
출처 : [자바의 정석 - 기초편] ch11-34~36 HashSet(1)
Object[] objArr = {"1",new Integer(1),"2","2","3","3","4","4","4"};
Set set = new HashSet();
for(int i=0; i < objArr.length; i++ ) {
set.add(objArr[i]);
}
System.out.println(set);
위의 코드를 보면 objArr이라는 배열에 여러 중복된 숫자들을 넣어주었다.
그후 Set 클래스의 자손인 HashSet 객체를 set 변수에 저장을 해놓고
반복문을 통해서 변수 set에 배열을 순차적으로 담아낸다.
결과 값은 아래와 같다.
9개의 수를 넣었는데 왜 5개만 출력될까?
이게 Set 클래스의 특징이다. (중복X)이기 때문에 중복된 수를 제외하고 하나만 출력
근데 왜 1은 두개가 나오는거죠? 라고 물어본다면 타입이 다르기 때문이다.