gpt4 book ai didi

java - 如何使用 For 循环的每种类型迭代通用列表

转载 作者:行者123 更新时间:2023-12-03 18:11:00 25 4
gpt4 key购买 nike

我被赋予了创建列表列表的任务,我应该能够使用“for each”类型的“for”循环遍历列表,而不是为 Iterator 构建构造函数。问题是,当我使用下面的代码时,我收到错误消息“只能迭代数组或 java.lang.Iterable 的实例”。这是代码:

public static void main(String[] args) {
GList<InnerList> list = new GList<InnerList>();
GList<InnerList> numList = new GList<InnerList>();
InnerList lst = new InnerList ();
Scanner sc = new Scanner(System.in);
String answer;
while (true){
System.out.println ("Do you want to create a list (y/n)? ");
answer = sc.next();
if (answer.equals("y")){
System.out.println("Enter the name of the list: ");
answer = sc.next();
lst.setName(answer);
if (list.isEmpty()== true){
list.insertFirstItem(lst);
}
else {
list.insertNext(lst);
}
}
while (true){
System.out.println("Do you want to enter a number (y/n)?");
answer = sc.next();
if (answer.equals("y")){
System.out.println("Enter Number: ");
answer = sc.next();
try {
int num1 = Integer.parseInt(answer);
lst.setInner(num1);
if (list.isEmpty() == true){
list.insertFirstItem(lst);
}
else {
list.insertNext(lst);
}
}
catch (NumberFormatException e){
System.out.println("You must enter an number! " + e);
sc.close();
}
}
return;
}
}
for (GList<InnerList> ilName : list){ //here are my error msgs. I also tried replacing GList<InnerList> with 'InnerList' and String.
for(GList<InnerList> ilInts : list){
System.out.println(ilName);
System.out.println(ilInts);
}
}
}

有人可以帮助我理解为什么当集合应该是可迭代的时 GList 不被视为 java.lang.iterable 的实例吗?

谢谢。

最佳答案

它不被视为 java.lang.Iterable 的实例因为它没有实现接口(interface) java.lang.Iterable .就如此容易。将其声明更改为

public class GList<T> implements Iterable<T>

您将很容易使用它的 foreach 循环。但是因为 listGList<InnerList> 的实例, 自从 GList<InnerList>包含 InnerList 的实例(至少,我猜是这样),循环应该是:

for (InnerList innerList : list) {
...
}

关于java - 如何使用 For 循环的每种类型迭代通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com