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