-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
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
최태현
지식공유자2023.04.02
안녕하세요, yousd179님!! 좋은 질문 감사드립니다!! 😊
결론부터 말씀드리면 네네 맞습니다!! 아직까지 코틀린 표준 라이브러리에서는 setOf
또는 mutableSetOf
가 LinkedHashSet
을 가리키므로 순서가 보장된다고 생각하셔도 됩니다.
하지만, setOf()
가 가리키는 Set
의 구현타입이 코틀린 라이브러리 상에서 혹시 변경될 수도 있으니, 만약 '순서보장' 로직이 반드시 요구되는 Set
이 필요하시다면, LinkedHashSet
또는 순서보장 집합 (ex. guava 안에 있는 Set 구현체) 코드를 그대로 사용하시는 것도 방법입니다!! Kotlin에서는 Java 라이브러리 코드를 마음껏 가져다 쓰실 수 있으니까요! 👍👍
감사합니다!! 🙏
또 궁금하신 점 있으시다면 편하게 질문 남겨주세요!!! 🙇
kamser
질문자2023.04.02
감사합니다.
강의를 볼때마다 정말 많이 반성을 많이 하고 있습니다.
알고 있는 자바 내용인데 동영상을 멈추고 설명을 혼자 해보려니까 막히는게 많더라구요.
앞으로도 좋은 강의 부탁드려요!!
답변 1