我是Collection Framework
的新手。我正在使用ArrayList()
运行java程序。当我尝试循环它以获取它的元素,但它抛出错误像
HelloWorld.java:15: error: cannot find symbol
for(int k=0;k<al.length;k++)
^
symbol: variable length
location: variable al of type ArrayList<String>
HelloWorld.java:17: error: array required, but ArrayList<String> found
System.out.println("elements are"+al[k]);
这是我写的代码。
import java.util.ArrayList;
public class HelloWorld{
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("pen");
al.add("pencil");
al.add("ink");
al.add("notebook");
al.add("book");
al.add("books");
al.add("paper");
al.add("white board");
for(int k=0;k<al.length;k++)
{
System.out.println("elements are"+al[k]);
}
}
}
帮我指出我的错误。提前谢谢
答案 0 :(得分:5)
ArrayList有一个返回列表大小的方法size
,以及一个get
方法来获取存储在特定索引中的元素。
所以你的for循环看起来像:
QObject::connect(callerObject, &callerObject::signal, [ ] {...})
或者如果你想要,你可以在没有索引的情况下遍历每个元素:
for(int k=0; k < al.size(); k++) {
System.out.println("elements are" + al.get(k));
}
如果您想将for(String text : al) {
System.out.println("elements are" + text);
}
与java8一起使用,您也可以这样做:
streams
如果您有兴趣,还有另一个answer that also talks about looping through lists in java。
答案 1 :(得分:3)
由于ArrayList不是数组,因此您可以使用al.size()。
如果你想使用索引试试这个
al.get(k)
答案 2 :(得分:0)
试试这个你不能将arrylist视为数组
for(int k=0;k<al.size();k++){
System.out.println("elements are"+ al.get(k));
}
答案 3 :(得分:0)
您可以尝试这种方式:
import java.util.ArrayList;
public class HelloWorld{
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("pen");
al.add("pencil");
al.add("ink");
al.add("notebook");
al.add("book");
al.add("books");
al.add("paper");
al.add("white board");
for(int k=0;k<al.size();k++)
{
System.out.println("elements are"+ al.get(k) );
}
}
}
答案 4 :(得分:0)
ArrayList<String> al = new ArrayList<String>();
al.add("pen");
al.add("pencil");
al.add("ink");
al.add("notebook");
al.add("book");
al.add("books");
al.add("paper");
al.add("white board");
for(int k=0;k<al.size();k++)
{
System.out.println("elements are"+al.get(k));
}
您需要使用size()
才能找到length
的{{1}}
当您像编辑器一样使用Eclipse时,希望您能够轻松克服所有这些方法,并且语法错误本身也有助于正确学习。
答案 5 :(得分:0)
由于您是Collection的新手,因此您将Array与Arraylist混淆。 Arraylist没有长度。它有size()
方法。
因为已经给出了很好的选择所以请使用java 8 Stream
ArrayList<String> al = new ArrayList<String>();
al.add("pen");
al.add("pencil");
al.add("ink");
al.add("notebook");
al.add("book");
al.add("books");
al.add("paper");
al.add("white board");
al.stream().forEach(System.out::println);
答案 6 :(得分:-1)
import java.util.ArrayList;
public class HelloWorld
{
public static void main(String[] args)
{
ArrayList<String> al = new ArrayList<String>();
al.add("pen");
al.add("pencil");
al.add("ink");
al.add("notebook");
al.add("book");
al.add("books");
al.add("paper");
al.add("white board");
for(int k=0;k<al.size();k++)
{
System.out.println("elements are"+al.get(k));
}
}
}