このページでは、コレクションパイプラインパターンの操作について説明します。詳細については、次の資料をお読みください。
- コレクションパイプラインの記事: コレクションパイプラインパターンを説明する記事
- 操作カタログ: このようなページで紹介する選択した操作のリスト。
明確
重複する要素を削除します。
重複を削除した新しいリストを返します。
ruby…
[1,2,3,2,1].uniq # => [1, 2, 3]
clojure…
(distinct [1 2 3 2 1]) ;; => (1 2 3)
一部のコレクションフレームワークには、セットを処理するための別の「Set」クラスがあります。これらは重複を自動的に削除し、順序付けがありません。そのため、数学的なセットに適したモデルになっています。このような場合、変換操作を使用してリストをセットに変換し、重複を削除できます。ただし、順序を維持する必要がある場合には、これは適しません。他のフレームワークは、リストを使用してセットを表すだけで、必要に応じてプログラマーに重複の削除を依存しています。
通常、要素は等価演算子を使用して比較されます。ただし、一部の言語では、比較用のラムダを提供できます。
ruby…["Bach", "Sibelius", "Beethoven", "Elgar", "Schumann"]. uniq {|c| c[0]} # => ["Bach", "Sibelius", "Elgar"]