我如何迭代这个arraylist

时间:2016-08-27 05:14:07

标签: java arrays arraylist

我对编程比较陌生。我正在尝试自学Java,而且我正在弄乱ArrayLists。如何单独打印这些字符串?现在,我有打印每个列表的地方,但我希望能够单独处理每个字符串。就像我想用for循环打印出每个字符串的长度一样,我该怎么做?我尝试做标准for循环,但我无法弄清楚要为终止要求放什么。我尝试了i < 2,因为test[3]的长度为2,但由于其他测试列表只有一个元素,因此出现了一个越界错误。

public static void main(String[] args)
{
  int arrlen = 4;
  ArrayList[] test = new ArrayList[arrlen];

  for(int i=0; i<arrlen; i++)
  {
    test[i] = new ArrayList<String>();
  }

  test[0].add("zero");
  test[1].add("one");
  test[2].add("two");
  test[3].add("three");
  test[3].add("second three");


  for(ArrayList i : test)
  {
    System.out.println(i);
  }

}

3 个答案:

答案 0 :(得分:2)

执行:

  for(ArrayList<String> arrayList : test)
  {
    for(String s: arrayList) {
        System.out.println(s);
    }
  }

或者,

  for(ArrayList<String> arrayList : test)
  {
    for(int t = 0; t < arrayList.size(); t++) {
        System.out.println(arrayList.get(t));
    }
  }

答案 1 :(得分:1)

我认为你正在尝试实现嵌套的arraylist,如果你在这里的方式是

ArrayList<ArrayList<Integer>> outer = new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> inner = new ArrayList<Integer>();        

    inner.add(100);     
    inner.add(200);
    outer.add(inner); // add first list
    inner = new ArrayList<Integer>(inner); // create a new inner list that has the same content as  
                                           // the original inner list
    outer.add(inner); // add second list

    outer.get(0).add(300); // changes only the first inner list

    System.out.println(outer);

答案 2 :(得分:-4)

下面应该有帮助。

public static void main(String[] args) {
        ArrayList<Integer> test = new ArrayList<Integer>();
        test.add(1);
        test.add(2);
        test.add(3);
        test.add(4);
        test.add(5);

        //USING FOR EACH LOOP:
        for (Integer i : test) {
            System.out.println(i);
        }

        //USING FOR LOOP:
        for (int i = 0; i < test.size(); i++) {
            System.out.println(test.get(i));
        }
    }