Java で Can Only Iterate Over an Array or an Instance of Java.Lang.Iterable エラーを解決する

Haider Ali 2023年10月12日
  1. 配列または java.lang.iterable のインスタンスのみを反復処理できます
  2. 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 エラー 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 ループを使用することです。

Iteratorwhile ループを使用して明示的に配列を反復する簡単な例を次に示します。 ここでは、ArrayList を使用して Iterator() を示します。

Iterator()ArrayList クラスのメソッドであるため、ここでは ArrayList が使用されます。

ここでは、作業を簡単にするために while ループが使用されています。 これは、forforeach などの他のループを使用しているときに、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 Ali
Haider Ali avatar Haider Ali avatar

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

関連記事 - Java Error