Scala で List からユニークなアイテムを見つける方法
2023-07-16 08:14:38
質問
ScalaでListのユニークな項目を見つけるにはどうしたらいいですか?
どのように解決するのですか?
最も効率的な順序保持の方法として、このような場合は
Set
を補助的なデータ構造として使用することです。
def unique[A](ls: List[A]) = {
def loop(set: Set[A], ls: List[A]): List[A] = ls match {
case hd :: tail if set contains hd => loop(set, tail)
case hd :: tail => hd :: loop(set + hd, tail)
case Nil => Nil
}
loop(Set(), ls)
}
暗黙の変換を使って、これをより良い構文で包むことができます。
implicit def listToSyntax[A](ls: List[A]) = new {
def unique = unique(ls)
}
List(1, 1, 2, 3, 4, 5, 4).unique // => List(1, 2, 3, 4, 5)
関連
-
[解決済み] ScalaのSeqとListの違いについて
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み】Scalaの記号演算子にはどんな意味があるの?
-
[解決済み】Scalaの型消去を回避するにはどうしたらいいですか?または、なぜ私のコレクションの型パラメータを取得することができないのですか?
-
[解決済み】Scalaのリスト連結、::と++の比較
-
[解決済み】Scalaでリスト内のアイテムを取得する?
-
[解決済み】Scalaはどこでimplicitを探すのか?
-
[解決済み] Scalaのforループは下降か減少か?
-
[解決済み] Scalaで複数の値をパターンマッチさせるには?
-
[解決済み] Map操作におけるタプルのアンパッキング
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] private[this] vs private
-
[解決済み] Scala の private と protected コンストラクタ
-
[解決済み] Scala型プログラミングリソース
-
[解決済み] 同じ要素をn回含むリストを作るには?
-
[解決済み] なぜScalaのimmutable Setは型が共変しないのか?
-
[解決済み] Scala で複数の暗黙の引数を持つ関数を定義する
-
[解決済み] フォールドの早期中止
-
[解決済み] タプルのリストをマップに変換する (重複するキーに対処する?)
-
[解決済み] Scalaで関数を定義する3つの方法の違い
-
[解決済み] コレクションのGroovyマップメソッド