所以,我有这个代码,基本上我想把一个字符串数组放在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
答案 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次。