Java でストリーム内の重複要素を見つける方法

PHPz
リリース: 2023-09-06 15:57:10
転載
1498 人が閲覧しました

Java でストリーム内の重複要素を見つける方法

データ ストリーム内の重複要素の検索は、Java の面接や多くの学生の試験でもよく聞かれる質問の 1 つです。 Java には重複要素を見つけるためのさまざまなメソッドが用意されています。主に 2 つのメソッドに焦点を当てます。1 つは Java Collection Framework の Set を使用する方法、もう 1 つはストリームの組み込みメソッド Collections.Frequency() を使用する方法です。 。

ストリーム内の重複要素を検索する Java プログラム

データ コレクションから重複を取得するさまざまな方法について説明する前に、filter() メソッドについて説明する必要があります。サンプルプログラムの重要な部分になります。

###フィルター()

これにより、指定された条件に基づいてストリームの要素をフィルタリングできます。これは、フロー項に何らかの動作を適用する高次関数の一部です。このメソッドは述語をパラメータとして受け取り、その述語に一致する要素のリストを返します。

###文法### リーリー

Java コレクション フレームワークの使用

これは Java コレクション インターフェイスのサブインターフェイスであり、重複した値は許可されません。これは数学的な集合に非常に似ています。 add() メソッドを使用すると、異なる要素のみをセットに追加できます。 Set インターフェイスのプロパティを使用するには、このインターフェイスを実装する HashSet クラスを使用する必要があります。

###例###

次の例は、Set インターフェイスを使用してストリームから重複要素を検索する方法を示しています。

###方法###

Arrays.asList() メソッドを使用して、固定サイズのリストを保存するリストを作成します。

次に、HashSet クラスを使用して、異なる要素のみを格納する Set を定義します。
  • ここで、filter() メソッドを stream() および forEach() とともに使用して、重複する項目のみをフィルターで除外します。ここで、stream() はストリームの形式で入力を指定し、forEach() を使用して繰り返し要素を反復して出力します。
  • リーリー

    出力
  •                 
    filter(predicate);
    
    ログイン後にコピー
  • Collections.Frequency() メソッドを使用する

    ストリームまたはコレクションから重複要素をフィルタリングするもう 1 つの最も簡単な方法は、「java.util」パッケージの Collections.Frequency() メソッドを使用することです。このメソッドは、指定されたコレクション内の要素の合計数を返すために使用されます。
文法

import java.util.*;
public class Duplicate {
   public static void main(String []args) {
      // create a list with duplicate items
      List<Integer> itemsList = Arrays.asList(10, 12, 10, 33, 40, 40, 61, 61);
      // declaring a new Set 
      Set<Integer> newitemSet = new HashSet<>();
      System.out.println("The list of duplicate Items: ");
      itemsList.stream() // converting list to stream
         .filter(nums -> !newitemSet.add(nums)) // to filter out the elementsthat are not added to the set
         .forEach(System.out::println); // print the duplicates
   }
}
ログイン後にコピー

ここにあります、

nameOfCollection

はストリームを表し、obj は頻度を決定する必要がある要素を表します。

###例###

次の例では、Collections.Frequency() メソッドを使用してストリーム内の各要素の出現をカウントし、複数回出現する要素を返します。繰り返される要素の出現リスト全体をカウントとともに出力します。

リーリー

出力

The list of duplicate Items: 
10
40
61
ログイン後にコピー
###例### これは、Set Interface メソッドと Collections.Frequency() メソッドの両方を使用して重複した要素のみを取得する別の例です。 Collections.Frequency() メソッドは、ストリーム内の各要素の出現をカウントし、カウントが 1 より大きい要素を Set に収集して重複を削除します。結果のセットには、ストリームからの繰り返し要素のみが含まれます。 リーリー

出力

Collections.frequency(nameOfCollection, obj);
ログイン後にコピー
###結論は### このセクションでは、上記の例と概念からいくつかの重要なポイントを示して議論を締めくくります。 filter() メソッドを使用すると、データ コレクションから特定のタイプの要素をフィルターで除外できます。各要素に述語を適用することで舞台裏で動作します。 Set Interface は個別の要素のみを保存できるため、特定のタスクに最適です。

以上がJava でストリーム内の重複要素を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート