Kotlin

KotlinでListから特定の項目の重複を除去して取得する

Kotlin では List の操作をするコレクション関数は便利ですよね。

よく使われるのは map や filter だと思いますが、その結果を踏まえてさらに追加の操作をしたいシーンがあります。

今回は、リストから特定の項目を map で抜き出したものの、同じ値が含まれていたので除去したいという場面に遭遇しました。

やり方は色々あると思いますが、便利そうな関数を見つけたので備忘録的な TIPS としてメモっておきます。

特定の項目を抜き出す

List から特定の項目を抜き出すには map で処理してあげるのが楽そうです。

結果は以下のようになります。

[name01, name02, name02, name03, name03, name04, name05]

重複した値を除去する

上記の場合だと、「name02」と「name03」が重複してしまっていますね。

簡単に unique(ユニーク)にできると嬉しいのですが、map や filter 単体ではスムーズにはできなさそうです。

そこで利用したいのが distinct() になります。

先ほどのコードの最後を少し変更します。

これで目的の形になりましたね。

[name01, name02, name03, name04, name05]

まとめ

Kotlin で List 型の操作について触れてみました。

コレクション関数は便利ではあるものの、目的とマッチしないケースもあり悩ましいところです。

この辺も Kotlin の経験値に左右されそうですが、頻繁に Kotlin に接していないと忘れてしまいますよね。

ということで、TIPS 的なネタは、今後もメモに残しておこうと思います。