Kotlin에서 setOf와 hashSetOf의 차이점

그리고 후원자

코드 스 니펫을 따라 생성되는 setOfStrings것과 hashSetOfStrings생성되는 차이점은 무엇입니까 ?

val setOfStrings = setOf("A", "B", "C")
val hashSetOfStrings = hashSetOf("A", "B", "C") 

그들은 항상 같은 유형을 가지고 있습니까? 같은 성능?

Gidds

그들 사이의 가장 중요한 차이점은 가변성 입니다.

setOf()Set인터페이스 를 구현하는 객체를 반환 하지만 아마도 변경 불가능 ( MutableSet하위 인터페이스를 구현하지 않음 )이므로 변경할 수 없습니다.

(온라인 문서 는 그것이 반드시 불변을 의미 read-only하지는 않는다고 명시하고 있습니다 . 그러나 그렇게 가정하는 것이 가장 안전합니다.)

구체적인 유형을 지정하지 않습니다. 이는 성능, 메모리 사용량 및 / 또는 유사성을 개선하기 위해 향후 변경 될 수 있도록하기위한 것입니다. 지금도 그것은 반환 할 수 kotlin.collections.EmptySet, java.util.Collections.SingletonSet또는를 kotlin.collections.LinkedHashSet; 후자는 표준에 비해 더 빠르고 (예측 가능한) 반복을가집니다 HashSet.

setOf()효율적이고 변경 불가능한 세트를 원하고 정확한 유형은 신경 쓰지 않을 때도 마찬가지 입니다.

hashSetOf()반면에는 항상 kotlin.collections.HashSet(또는 하위 클래스)를 반환하며 항상 변경 가능합니다. 특정 유형이 필요할 때 사용합니다.

그리고 변경 가능한 집합을 원하지만 정확한 유형에 대해 신경 쓰지 않는다면을 호출하는 것이 가장 좋습니다 mutableSetOf().

(물론 일반적으로 실제로 필요하지 않은 경우 구체적인 유형을 지정하지 않는 것이 가장 좋습니다. 그러면 코드를 유연하게 유지할 수 있습니다.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Kotlin Generics에서 초기화와 할당의 차이점 이해

분류에서Dev

Kotlin의 제네릭에서 <out Any?>와 <*>의 차이점

분류에서Dev

Kotlin에서 Hard 키워드와 Soft 키워드의 차이점

분류에서Dev

Kotlin에서 lazy와 lazyFast의 차이점은 무엇입니까?

분류에서Dev

Scala에서 =>와->의 차이점

분류에서Dev

MaterialApp에서 initialRoute와 home의 차이점

분류에서Dev

CSS에서 :: after와 :: before의 차이점

분류에서Dev

webpack에서 publicPath와 contentBase의 차이점

분류에서Dev

C에서 gcvt ()와 _gcvt ()의 차이점

분류에서Dev

Bash에서 *와? * glob의 차이점

분류에서Dev

JDBC에서 CreateStatement와 PreparedStatement의 차이점

분류에서Dev

Clojure에서 (3)와 3의 차이점

분류에서Dev

SSH에서 :와 ::의 차이점

분류에서Dev

Haskell에서 print와 putStrLn의 차이점

분류에서Dev

정규식에서. *와 *의 차이점

분류에서Dev

SBT에서 scalaSource와 sourceDirectories의 차이점

분류에서Dev

Mahout에서 StandardNaiveBayesClassifier와 ComplementaryNaiveBayesClassifier의 차이점

분류에서Dev

fopen ()에서 r +와 w +의 차이점

분류에서Dev

VisualStateManager에서 MouseOver와 PointerOver의 차이점

분류에서Dev

CSS에서 :와 ::의 차이점

분류에서Dev

JavaScript에서 layerX와 offsetX의 차이점

분류에서Dev

R에서 &와 &&의 차이점

분류에서Dev

PARSE에서 BREAK와 REJECT의 차이점

분류에서Dev

R에서 character ()와 ""의 차이점

분류에서Dev

Twig에서 {% include ''%}와 {{include ( '')}}의 차이점

분류에서Dev

CSS에서 "* ="와 "="의 차이점

분류에서Dev

Clojure에서 "->"와 "->>"의 차이점

분류에서Dev

몽구스에서 [{}]와 {}의 차이점

분류에서Dev

CSS에서 Mozilla와 Chrome의 차이점

Related 관련 기사

뜨겁다태그

보관