所以,我有这样的代码,基本上我想把一个字符串数组放到一个ListArray的内部,然后把那个ListArray放到另一个ListArray中。虽然我知道如何放置一个新的数组对象,但我似乎无法找到将一个新的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发布于 2018-03-28 13:45:25
您需要在循环中移动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次。
https://stackoverflow.com/questions/49536155
复制相似问题