我有两个列表,我想制作一个列表列表。出于某种原因,在我打印出每个列表后,我在数组中得到了一个巨大的条目。我正在使用来自 HashMap 的数据,需要拆分键字符串以取回值,然后将整数转换为字符串以添加到数组。
ArrayList<ArrayList<String>> listOLists = new ArrayList<ArrayList<String>>();
ArrayList<String> singleList = new ArrayList<String>();
for (Entry<String, Integer> entry : counts.entrySet()) {
String val = entry.getValue().toString();
List<String> key = Arrays.asList(entry.getKey().split("@"));
singleList.add(key.get(0));
singleList.add(key.get(1));
singleList.add(key.get(2));
singleList.add(val);
listOLists.add(singleList);
}
for(ArrayList<String> s: listOLists){
System.out.println(s);
}
我得到:
[Demo-Site, 172.20.58.160, 2015-08-06, 12, Demo-Site, 10.227.145.103, 2015-08-19, 1, Demo-Site, 10.7.0.146, 2015-08-11, 3,
我希望最终输出看起来像这样:
[[Demo-site, 172.20.58.160, 2015-08-06, 12], [Demo-site, 10.227.145.103, 2015-08-19, 1]..etc]
最佳答案
这是因为您在每次迭代中都添加了同一个列表。 只需将 singleList = new ArrayList();在 tle 循环体中。
关于java - 将数组列表更改为列表列表java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208870/