1. 概要

このチュートリアルでは、Scalaを使用してリスト内の一意のアイテムを見つける方法を説明します。

2. リスト内のユニークなアイテムを見つける

最初のアプローチは、 List.distinct メソッドを使用することです。このメソッドは、すべての要素を重複せずに返します

scala> List(1,3,2,2,1).distinct
val res0: List[Int] = List(1, 3, 2)

順序を維持する必要がない場合は、リストをセットに変換することもできます。

scala> List(1,3,2,2,1).toSet
val res1: Set[Int] = Set(1, 3, 2)

ただし、等式が単純ではない、より複雑なオブジェクトを扱っている場合は、 List.distinctBy を使用して、比較関数を指定できます。

scala> List(("a", 2.7), ("b", 2.1), ("a", 5.4)).distinctBy(_._2.floor)
val res2: List[(String, Double)] = List((a,2.7), (a,5.4))

どの「複製」が返されるかについての保証はないことを考慮に入れる必要があります。 この例では、最初のものを返しましたが、動作はAPIで指定されておらず、環境とバージョンによって変わる可能性があります。

3. 結論

この記事では、Scalaを使用してリスト内の一意のアイテムを見つけるいくつかの異なる方法を見ました。