Java 将两个子列表混合到一个列表中
我有两个相同大小的列表: 在我的“a”列表中 在“b”列表中,我有 我要做的是将这两个列表混合在一起,以得到以下结果:Java 将两个子列表混合到一个列表中,java,list,arraylist,Java,List,Arraylist,我有两个相同大小的列表: 在我的“a”列表中 在“b”列表中,我有 我要做的是将这两个列表混合在一起,以得到以下结果: Position[0] = 1,2,3,4,5,6 Position[1] = 7,8,9,10,11,12 Position[2] = 13,14,15,16,17,18 Position[3] = 19,20,21,22,23,24 我试过这个 public List<Object[]> getMixedList() { List a, b; a = ge
Position[0] = 1,2,3,4,5,6
Position[1] = 7,8,9,10,11,12
Position[2] = 13,14,15,16,17,18
Position[3] = 19,20,21,22,23,24
我试过这个
public List<Object[]> getMixedList() {
List a, b;
a = getLista();
b = getListb();
List<Object[]> ab = new ArrayList<Object[]>(a);
ab.addAll(b);
return ab
}
我一直在使用循环,但不知道怎么做,因为当我对列表“b”进行第二次迭代时,它会将整个列表b添加到列表a的第一个位置,以此类推
欢迎提供任何线索。尝试同时迭代两个循环。我不想给你更多的信息,因为这听起来像是一个家庭作业问题。不会附加
集合
的相应元素,而是将它们附加到集合
的末尾
您需要迭代第一个集合,创建一个新数组,并将两个对应数组的元素复制到新数组中,然后再将其设置为新数组元素
由于数组的大小是固定的,所以可以使用创建一个新的数组,该数组的大小足以容纳来自相应数组元素的条目
List<Object[]> getMergedList(List<Object[]> list1, List<Object[]> list2) {
List<Object[]> mergedList = new ArrayList<Object[]>();
for (int i = 0; i < list1.size(); i++) {
Object[] objects1 = list1.get(i);
Object[] objects2 = list2.get(i);
int length1 = objects1.length;
int length2 = objects2.length;
Object[] mergedArray = new Object[length1 + length2];
System.arraycopy(objects1, 0, mergedArray, 0, length1);
System.arraycopy(objects2, 0, mergedArray, length1, length2);
mergedList.add(mergedArray);
}
return mergedList;
}
List getMergedList(列表列表1、列表2){
List mergedList=new ArrayList();
对于(int i=0;i
addAll
将元素追加到ArrayList
的末尾。在您的案例中,它只是串联
这个例子有点难处理,因为数组是固定长度的。您最好使用一个列表列表,或者在这种情况下使用list
s的Map
。如果无法使用当前格式,则需要使用新的数组列表。for(int i=0;i<4;++i){
for (int i = 0; i < 4 ; ++i) {
Object[] aContent = a.get(i);
Object[] bContent = b.get(i);
... add your code to merge the content ..
ab.add(mergedResult);
}
Object[]aContent=a.get(i);
对象[]b内容=b.get(i);
…添加代码以合并内容。。
ab.add(合并结果);
}
我迭代列表“a”并获取两个列表位置的元素,但我不知道如何将它们合并到一个对象中,以将它们添加到我的最终列表中。无论如何,谢谢,也许你的更有效,顺便说一句,直到netbeans建议使用System.arraycopy而不是我的for,我才知道您在谈论System.arraycopy。我已经这样做了,问题是我不知道如何连接这两个对象:列表“a”的元素在位置[0]处,列表“b”的元素在位置0处,但如何合并它们?我试过添加(aContent);添加(b内容);但是它把它放下来而不是混合。我会给你一个线索mergedResult
是另一个对象数组,您必须将a和b的内容逐个移动到其中。完成后,我使用一个矩阵逐个保存元素,并使用2,以便s先迭代a,然后迭代b。谢谢你的帮助。
Position[0] = 1,2,3
Position[1] = 7,8,9
Position[2] = 13,14,15
Position[3] = 19,20,21
Position[4] = 4,5,6
Position[5] = 10,11,12
Position[6] = 16,17,18
Position[7] = 22,23,24
List<Object[]> getMergedList(List<Object[]> list1, List<Object[]> list2) {
List<Object[]> mergedList = new ArrayList<Object[]>();
for (int i = 0; i < list1.size(); i++) {
Object[] objects1 = list1.get(i);
Object[] objects2 = list2.get(i);
int length1 = objects1.length;
int length2 = objects2.length;
Object[] mergedArray = new Object[length1 + length2];
System.arraycopy(objects1, 0, mergedArray, 0, length1);
System.arraycopy(objects2, 0, mergedArray, length1, length2);
mergedList.add(mergedArray);
}
return mergedList;
}
for (int i = 0; i < 4 ; ++i) {
Object[] aContent = a.get(i);
Object[] bContent = b.get(i);
... add your code to merge the content ..
ab.add(mergedResult);
}