回答:
distinct拡張機能を使用します。
val a = arrayOf("a", "a", "b", "c", "c")
val b = a.distinct() // ["a", "b", "c"]
アイテムを区別する方法を指定できるdistinctBy関数もあります:
val a = listOf("a", "b", "ab", "ba", "abc")
val b = a.distinctBy { it.length } // ["a", "ab", "abc"]
@ mfulton26提案し、あなたも使用することができtoSet、toMutableSetあなたが保存される元の順序を必要としない場合は、とtoHashSet。これらの関数はのSet代わりにを生成し、Listよりも少し効率的ですdistinct。
あなたは役に立つかもしれません:
toSetまたはtoMutableSetを使用することもできますが、オーバーヘッドが少なくdistinct、順序が重要でない場合は使用できますtoHashSet。
to*Setより効率的(空間と時間)であり、2)は完全なオブジェクトの等価比較を回避できるため、単純な場合よりも効率的です。どちらも有効なポイントです。私は「確かに常にオーバーヘッドがあるわけではない」というあなたの発言を実行しましたが、私はそれに返信していて、あなたが(ではなく)と比較しているのを見過ごしていました。distinct[By]SetSetListdistinctBydistinctdistinctdistinctByto*Set
Iterable.distinct実際にはtoMutableSet().toList()内部で行われます。パフォーマンスについては気にしないでください:-)