반응형
자바에서 set에 대해 배울 때 set은 정렬 순서가 없으며 무작위로 호출되기 때문에
순서를 가지게 하고 싶으면 LinkedHashSet을 사용하라는 식으로 많이 배웠을텐데
실제 set에 값을 넣고 iterator로 값을 꺼내보면
무작위로 넣었는데도 실 출력시 값이 정렬이 되어서 뽑히고
여러번 다시 출력하더라도 결과는 동일하다
이거 왜 이러지? 싶을텐데
실제 set에 값을 넣을 때 hashCode 값을 가지고 넣기 때문에
무작위로 넣는 것 처럼 보여도 실제로 뽑아보면 hash 코드 값 순으로 넣었기 때문에
무작위가 아닌 것이다
여기서 hashCode가 무조건 맞는 것이 아닌게
Returns an iterator over the elements in this set. The elements are returned in no particular order.
이렇게 특별한 순서가 있는 것은 아니다! 라고 설명에 써 놓았기 때문에
실제 여러 값을 넣어보며 테스트 할 시에는 hashCode와 다르게 들어오는 경우도 많다
다만 많은 경우에 hashCode 순서대로 넣고 뽑아낸다는 것이다
반응형
'Language > Java' 카테고리의 다른 글
자바 Map 사용법부터 출력까지 (1) | 2019.12.03 |
---|---|
자바 Set 사용법부터 출력까지 (0) | 2019.11.27 |
자바 void return 메소드 뜻부터 호출까지 (0) | 2019.11.26 |
자바 List 정렬, 역정렬 방법 및 예제 (0) | 2019.11.25 |
자바 List 정의부터 출력까지 (0) | 2019.11.25 |
댓글