Java でセットを反復処理する

Rupam Yadav 2023年10月12日
  1. Java で強化された for ループを使用して Set/HashSet を反復処理する
  2. Java で列挙を使用して Vector を反復処理する
  3. Java で Set/HashSet を配列に変換して反復処理する
  4. Java で Array クラスの stream() メソッドを使って Set/HashSet を反復処理する
Java でセットを反復処理する

この記事では、イテレータを使わずに Java で SetHashSet を反復処理する方法を紹介します。イテレータは、ランダムな順序で要素を返すために使用されます。この作業はイテレータ以外にも様々なメソッドを使って行うことができます。

Java で強化された for ループを使用して Set/HashSet を反復処理する

Java の for-each ループは、拡張された for ループとも呼ばれる。これは Java で配列やコレクションの要素を繰り返し処理するために使われます。

ここでは、文字列要素のコレクションである HashSet クラスを用いて mySet という名前の Set を作成しています。mySetadd() メソッドを呼び出すことで、mySet に要素を追加しています。

強化された for ループを使用すると、コードに示すように、コレクション内の各要素を繰り返し処理して出力することができます。mySetString 型の各要素 s について、それを繰り返し処理することができます。要素は順不同のコレクション内で反復処理を行うことに注意してください。

import java.util.HashSet;
import java.util.Set;

public class IterateOverHashSet {
  public static void main(String[] args) {
    Set<String> mySet = new HashSet<>();
    mySet.add("Apple");
    mySet.add("Banana");
    mySet.add("Mango");

    for (String s : mySet) {
      System.out.println("s is : " + s);
    }
  }
}

出力:

s is : Mango
s is : Apple
s is : Banana

Java で列挙を使用して Vector を反復処理する

VectorList インターフェースを実装しており、ArrayList クラスと同様にリサイズ可能な配列を作成するのに役立ちます。まず、HashSet クラスを使って文字列型の要素からなる Set を作成し、後に add() メソッドを使って要素を追加します。

次に mysetVector クラスのコンストラクタに渡し、その上で elements() メソッドを呼び出して Vector の要素を列挙します。

その後、Enumeration (e) の要素が増えるまで while ループを使って出力します。メソッド nextElements() を連続して呼び出すと、連続した要素が返されます。

import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import java.util.Vector;

public class IterateOverHashSet {
  public static void main(String[] args) {
    Set<String> mySet = new HashSet<>();
    mySet.add("Apple");
    mySet.add("Banana");
    mySet.add("Mango");

    Enumeration e = new Vector(mySet).elements();
    while (e.hasMoreElements()) {
      System.out.println(e.nextElement());
    }
  }
}

出力:

Mango
Apple
Banana

Java で Set/HashSet を配列に変換して反復処理する

まず、String 型の要素からなる Set を作成し、mySet に要素を追加します。要素を繰り返し処理するために、mySettoArray() メソッドを使って配列に変換します。toArray() メソッドは HashSet と同じ要素を持つ配列を返します。

そして、for ループを使って myArray という名前の新しい配列のすべての要素をループさせることができます。以下のコードに示すように、各要素を表示します。

import java.util.HashSet;
import java.util.Set;

public class IterateOverHashSet {
  public static void main(String[] args) {
    Set<String> mySet = new HashSet<>();
    mySet.add("Apple");
    mySet.add("Banana");
    mySet.add("Mango");

    String[] myArray = mySet.toArray(new String[mySet.size()]);
    for (int index = 0; index < myArray.length; index++) {
      System.out.println("element : " + myArray[index]);
    }
  }
}

出力:

element : Mango
element : Apple
element : Banana

Java で Array クラスの stream() メソッドを使って Set/HashSet を反復処理する

以下のコードでは、まず Java の HashSet クラスを用いて String 型の要素の Set を作成します。次に、そのインスタンス fruits に対して add() メソッドを呼び出してアイテムを追加します。

stream() メソッドはコレクションの連続したストリームを返します。今回は、String - fruitsSetstream に変換します。その後、stream の要素を lambda 式を用いて表示します。

import java.util.HashSet;
import java.util.Set;
import java.util.stream.Stream;

public class Simple {
  public static void main(String args[]) {
    Set<String> fruits = new HashSet<>();
    fruits.add("Apple");
    fruits.add("Banana");
    fruits.add("Mango");

    Stream<String> stream = fruits.stream();
    stream.forEach((fruit) -> System.out.println(fruit));
  }
}

出力:

Apple
Mango
Banana
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Set