所以,我有这段代码,基本上我想将一个String Array放入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
最佳答案
您需要在循环内移动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次。