ArrayList第一个元素查找

时间:2017-07-21 06:13:06

标签: java arrays arraylist

我是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]);
  }
   }
}

帮我指出我的错误。提前谢谢

7 个答案:

答案 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));
      }
   }
}