• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

setOf,mutableSetOf 기본 구현체가 LinkedHashSet이면

23.04.02 17:34 작성 조회수 303

1

HashSet은 순서를 보장하지않고

LinkedHashSet은 node로 순서를

보장하는걸로 알고 있습니다.

 

코틀린에서 타고 들어가면

@SinceKotlin("1.1") public actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E>

이렇게 나와서 그대로 사용하는 거 같더라구요

 

그래서 setOf 나 mutableSetOf는

순서를 보장하는 Set이라고 생각해도 될까요?

답변 1

답변을 작성해보세요.

1

안녕하세요, yousd179님!! 좋은 질문 감사드립니다!! 😊

결론부터 말씀드리면 네네 맞습니다!! 아직까지 코틀린 표준 라이브러리에서는 setOf 또는 mutableSetOfLinkedHashSet 을 가리키므로 순서가 보장된다고 생각하셔도 됩니다.

 

하지만, setOf() 가 가리키는 Set의 구현타입이 코틀린 라이브러리 상에서 혹시 변경될 수도 있으니, 만약 '순서보장' 로직이 반드시 요구되는 Set이 필요하시다면, LinkedHashSet 또는 순서보장 집합 (ex. guava 안에 있는 Set 구현체) 코드를 그대로 사용하시는 것도 방법입니다!! Kotlin에서는 Java 라이브러리 코드를 마음껏 가져다 쓰실 수 있으니까요! 👍👍

 

감사합니다!! 🙏

또 궁금하신 점 있으시다면 편하게 질문 남겨주세요!!! 🙇

kamser님의 프로필

kamser

질문자

2023.04.02

감사합니다.

강의를 볼때마다 정말 많이 반성을 많이 하고 있습니다.

알고 있는 자바 내용인데 동영상을 멈추고 설명을 혼자 해보려니까 막히는게 많더라구요.

앞으로도 좋은 강의 부탁드려요!!