Java で Can Only Iterate Over an Array or an Instance of Java.Lang.Iterable エラーを解決する
-
配列または
java.lang.iterable
のインスタンスのみを反復処理できます -
Iterator()
を使用してCan Only Iterate Over an Array or an Instance of java.lang.iterable
エラーを解決する
Java エラー Can only iterate over an array or an instance of java.lang.iterable
について学習します。 このエラーが発生する理由とその解決策を見ていきます。
それでは、これ以上遅れることなく、飛び込みましょう。
配列または java.lang.iterable
のインスタンスのみを反復処理できます
このエラーはコンパイル時エラーであり、そのとおりです。 配列またはインスタンスの繰り返しに問題がある場合に発生します。
プログラミング中、ユーザーは自分で物事を簡単にしようとします。そうしている間、ユーザーはループを使用します。 ただし、ループを使用することが必ずしも正しい答えとは限りません。
エラーcan only iterate over an array or an instance of java.lang.iterable
は、ユーザーが配列またはインスタンスでループを使用できなくなるという意味ではありません。 これは、その条件を補完しないループが使用されていることを意味します - たとえば、for
または foreach
ループ。
Iterator()
を使用して Can Only Iterate Over an Array or an Instance of java.lang.iterable
エラーを解決する
ループの場合、foreach
ループが使用されている場合、foreach
がこのエラーを発生させることがあるため、繰り返しを明示的に入力する必要があります。 Iterator
を使用してそれを行うことができます。
もう 1つの方法は、単純な for
または while
ループを使用することです。
Iterator
と while
ループを使用して明示的に配列を反復する簡単な例を次に示します。 ここでは、ArrayList
を使用して Iterator()
を示します。
Iterator()
は ArrayList
クラスのメソッドであるため、ここでは ArrayList
が使用されます。
ここでは、作業を簡単にするために while
ループが使用されています。 これは、for
や foreach
などの他のループを使用しているときに、Iterator()
メソッドが正しく機能しないためです。
Iterator()
はコレクション メソッドの一部であるため、while
ループなどの特定のループで適切に機能します。
コード:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
List<Integer> Num = new ArrayList<>(); // ArrayList is used here
Num.add(1);
Num.add(2);
Num.add(3);
Num.add(4);
Iterator<Integer> value = Num.iterator(); // Here is the use of Iterator()
while (value.hasNext()) // hasNext() is used to loop. It is a method of Iterator()
{
System.out.println(value.next());
}
}
}
出力:
1
2
3
4
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn