web-dev-qa-db-ja.com

要素のプロパティによってコレクションを別のコレクションに変換/変換する方法は?

Kotlinにオブジェクトのコレクションがある場合、それらのオブジェクトの特定のプロパティのコレクションを取得する簡単な方法はありますか? Kotlinの収集操作 のリストを見ましたが、何も目立ちませんでした(しかし、私は何かを見落としていたかもしれません)

pythonでは、次のようになります。

[person.name for person in persons]

そして、私はやる代わりにコレクション関数を使用したいと思います:

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

私はフィルタリング/ラムダ関数やリストの理解以外の知識がかなり不足しているので、これが簡単な質問であればおologiesびします

18
Parker

kotlinで簡単に実行できます。

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

[〜#〜] if [〜#〜]不変のListが必要な場合、以下のように簡略化できます。

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

[〜#〜] or [〜#〜]代わりに 関数参照式 を使用:

var nameMap = persons.map(Person::name);
50
holi-java

モデルをマップする場合は、これを実行します。

var nameMap: List<Model> = persons.map { Model(it.name,it.number) };
14
Khemraj