如何将Array的新对象ArrayList添加到另一个ArrayList中?

时间:2018-03-28 13:41:57

标签: java arraylist

所以,我有这个代码,基本上我想把一个字符串数组放在ListArray里面,然后将ListArray放到另一个ListArray中。虽然我知道如何放置一个新的Array对象,但我似乎找不到将新的ListArray对象放到另一个ListArray的方法

import java.util.ArrayList;
import java.util.List;


public class HelloWorld
{

  public static void main(String[] args)
  {

    ArrayList<List<String[]>> menues = new ArrayList<>();
    ArrayList<String[]> items = new ArrayList<String[]>();

    String price = "$12";

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 5; j++) {
            String name = "Item Code-" + String.valueOf(i) + String.valueOf(j);
            items.add( new String[]{name, price} );
        }
      menues.add(items); // This line is the cause
    }

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 5; j++) {
            System.out.println(menues.get(i).get(j)[0]);
        }
    }

  }
}

结果我希望是

Item Code-00
Item Code-01
Item Code-02
Item Code-03
Item Code-04
Item Code-10
Item Code-11
Item Code-12
Item Code-13
Item Code-14
Item Code-20
Item Code-21
Item Code-22
Item Code-23
Item Code-24

我得到的结果(基本上只是重复同样的事情)

Item Code-00
Item Code-01
Item Code-02
Item Code-03
Item Code-04
Item Code-00
Item Code-01
Item Code-02
Item Code-03
Item Code-04
Item Code-00
Item Code-01
Item Code-02
Item Code-03
Item Code-04

1 个答案:

答案 0 :(得分:2)

您需要在循环中移动items创建

for (int i = 0; i < 3; i++) {
    ArrayList<String[]> items = new ArrayList<String[]>();
    for (int j = 0; j < 5; j++) {
        String name = "Item Code-" + String.valueOf(i) + String.valueOf(j);
        items.add( new String[]{name, price} );
    }
    menues.add(items); // This line is the cause
}

否则,您再次添加相同的items,这会导致外部列表包含相同的列表3次。