Java でセットを反復処理する
-
Java で強化された
forループを使用してSet/HashSetを反復処理する -
Java で列挙を使用して
Vectorを反復処理する -
Java で
Set/HashSetを配列に変換して反復処理する -
Java で
Arrayクラスのstream()メソッドを使ってSet/HashSetを反復処理する
この記事では、イテレータを使わずに Java で Set や HashSet を反復処理する方法を紹介します。イテレータは、ランダムな順序で要素を返すために使用されます。この作業はイテレータ以外にも様々なメソッドを使って行うことができます。
Java で強化された for ループを使用して Set/HashSet を反復処理する
Java の for-each ループは、拡張された for ループとも呼ばれる。これは Java で配列やコレクションの要素を繰り返し処理するために使われます。
ここでは、文字列要素のコレクションである HashSet クラスを用いて mySet という名前の Set を作成しています。mySet の add() メソッドを呼び出すことで、mySet に要素を追加しています。
強化された for ループを使用すると、コードに示すように、コレクション内の各要素を繰り返し処理して出力することができます。mySet の String 型の各要素 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 を反復処理する
Vector は List インターフェースを実装しており、ArrayList クラスと同様にリサイズ可能な配列を作成するのに役立ちます。まず、HashSet クラスを使って文字列型の要素からなる Set を作成し、後に add() メソッドを使って要素を追加します。
次に myset を Vector クラスのコンストラクタに渡し、その上で 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 に要素を追加します。要素を繰り返し処理するために、mySet を toArray() メソッドを使って配列に変換します。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 - fruits の Set を stream に変換します。その後、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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn