2017-06-24 20 views
2

私がKotlinにオブジェクトのコレクションを持っている場合、それらのオブジェクトの特定のプロパティのコレクションを素早く取得する方法はありますか?要素のプロパティによってコレクションを別のコレクションに変換/変換する方法はありますか?

[person.name for person in persons]

そして、私が使用することを好むだろう:それはと同類だろうPythonで私はcollection operations for Kotlinのリストを見て、何も私のために際立っていない(しかし、私は何かを見落としている場合があります)

コレクション機能の代わりにやって:

var nameMap = mutableListOf<String>() 
persons.forEach{person -> nameMap.add(person.name)} 

を謝罪ので、これは簡単な質問であれば、私はかなり、フィルタリング/ラムダ関数とリスト内包以外の知識に欠けてい

答えて

5

それはKotlinで行うのは簡単だ:

//   v--- the variable type can be removed 
var nameMap: MutableList<String> = persons.map { it.name }.toMutableList(); 

あなたは不変Listをしたい場合は、以下のように簡略化することができます。

//   v--- the variable type can be removed 
var nameMap: List<String> = persons.map { it.name }; 

ORを代わりにfunction reference expressionを使用して:

var nameMap = persons.map(Person::name); 
+0

なぜ変更可能なリストですか? – marstran

+0

@marstranあなたの質問は 'MutableList ' –

+0

と定義されているので、それは私の質問ではありません。また、彼は変更可能なリストをどこにも指定しなかった。彼はちょうど彼の回避策でそれを使用しました。 – marstran

関連する問題