쿵따리쿵쿵따
270
2018-03-19 22:07:07
2
672

HashSet이랑 TreeSet궁금한게 있습니다


Stream을 문자열을 char[]로 변환하고 Set으로 반환하였습니다.



보시다시피 charSet의 타입은 HashSet인데 신기하게도 TreeSet처럼 정렬이 되어서 결과가 나왔습니다.


제가 뭘 잘못알고 있는거같은데 아시는분 좀 가르쳐주세요!!

0
  • 답변 2

  • PRO그래머
    3k
    2018-03-19 22:30:21

    착각하고 있으신 부분을 말씀드리면 콜렉션을 사용해서 중복제거를 하는시점에서 정렬이 들어갑니다.

    다만 hashset과 treeset의 차이는 '보장' 입니다.

    단순 알파벳의 순서만 적용하셧기 때문에 차이없이 순서대로 출력이 됐지만 예외의 복잡한상황에서

    hashset은 순서를 보장해주지 않습니다.


    아마 이부분에서 hashset은 정렬을 안해주고 treeset은 정렬을 해주는구나 라고 착각하신것 같습니다.

  • 쿵따리쿵쿵따
    270
    2018-03-20 07:08:50

    아 보장의 차이..이건 전혀 몰랐던거네요.

    정말 감사합니다. 말씀대로 제가 단단히 착각하고 있었네요. 

    바로잡아주셔서 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.