【发布时间】:2014-09-06 16:33:57
【问题描述】:
我试图将两个列表合并到一个新列表中,这两个列表的所有值与原始列表保持相同的索引,同时不增加新列表的长度。 列表 A 在随机索引处包含一个数字,有些为空,数字在 1-3 之间。 列表 B 包含所有索引上的数字 123。 我尝试使用 for 循环和列表添加,但随后它给了我一个 indexoutofbounds,因为似乎列表添加在添加值时会推送列表的内容。我现在正在尝试使用 hashmap:
列表:
Int arraylength = 10;
ArrayList<Integer> mergeballs = new ArrayList<>(arraylength); // merging list A
// contenent: null,3,null,null,2,3,null,1,null,2
ArrayList<Integer> hats = new ArrayList<>(arraylength); // merging list B
//contenent: 123,123,123,123,123,123,123,123,123,123
ArrayList<Integer> hatsMerged = new ArrayList<Integer>(arraylength); // A & B merged
for (int o = 0; o < stickarray.length; o++) {
HashMap<Integer, Integer> map = new HashMap<Integer, Integer (arraylength);
map.put(o, hats.get(o) + mergeballs.get(o));
hatsMerged.add(o,map.get(o));
System.out.print(hatsMerged.get(o));
}
有了这段代码,我也得到了一个越界的索引,帽子和合并球正在被总结,这是我不想要的。我希望它是:123,1233,123,123,1232,1233,123,1231,123,1232
我该怎么做? hashmap 是最好的选择吗?
【问题讨论】:
-
这两个列表如何在合并后将项目保持在同一索引中?合并后,合并后的列表将包含两个列表的项目,那么列表 B 的项目 1 如何在与也有项目 1 的列表 A 合并后保留在该索引处?
-
在所有索引上包含相同值的列表有什么意义?另外,我同意 Edwin Dalorzo 的观点,据我所知,这个问题毫无意义。