在java中,将较大的arrayList添加到较小的arrayList

在java中,将较大的arrayList添加到较小的arrayList,java,collections,Java,Collections,我有一个问题,不知道如何开始,请帮助 我得到了两个ArrayList,一个是smaler,另一个更大,现在我必须将较大的值添加到较小的列表中,但保留了两个列表中的所有值 例如,我们有两个ArrayList ArrayList1[1,2,3] ArrayList2[3,5,7,5] ArrayListResult[4,7,10,5] 只需并行地从两个迭代器中获取元素,同时对值求和,并构建新的结果数组列表 完成最短列表后,只需运行较长列表的迭代器,然后将值附加到结果列表中 大概是这样

我有一个问题,不知道如何开始,请帮助

我得到了两个ArrayList,一个是smaler,另一个更大,现在我必须将较大的值添加到较小的列表中,但保留了两个列表中的所有值

例如,我们有两个ArrayList

  ArrayList1[1,2,3]
  ArrayList2[3,5,7,5]

  ArrayListResult[4,7,10,5]

只需并行地从两个迭代器中获取元素,同时对值求和,并构建新的结果数组列表

完成最短列表后,只需运行较长列表的
迭代器
,然后将值附加到结果列表中

大概是这样的:

List<Integer> l1 = ...;  // shorter
List<Integer> l2 = ...;  // longer
List<Integer> result = new ArrayList<Integer>();  // result

Iterator<Integer> i1 = l1.iterator();
Iterator<Integer> i1 = l2.iterator();

// Add the numbers as long as both lists have elements at that position
while(i1.hasNext() && i2.hasNext()) {
    result.append(i1.next() + i2.next());
}

// Append the remaining elements.
// Note that it's not possible for both lists to have remaining elements.
while(i1.hasNext()) {
    result.append(i1.next());
}
while(i2.hasNext()) {
    result.append(i2.next());
}
列表l1=…;//更短的
列表l2=…;//比较长的
列表结果=新建ArrayList();//结果
迭代器i1=l1.Iterator();
迭代器i1=l2.Iterator();
//只要两个列表在该位置都有元素,就添加数字
while(i1.hasNext()&&i2.hasNext()){
追加(i1.next()+i2.next());
}
//附加其余元素。
//请注意,不可能两个列表都有剩余的元素。
while(i1.hasNext()){
append(i1.next());
}
while(i2.hasNext()){
result.append(i2.next());
}
试试这个:

int l1 = ArrayList1.size(); int l2 = ArrayList2.size();
int max = Math.max(l1, l2);
ArrayList<Integer> ArrayListResult = new ArrayList<Integer>(max);


for (int i = 0; i<max; i++ ) {

    ArrayListResult.set(i,0);
    if(i < l1) {
         ArrayListResult.set(i,ArrayList1.get(i)+ArrayListResult.get(i));
    }
    if(i < l2) {
         ArrayListResult.set(i,ArrayList2.get(i)+ArrayListResult.get(i));
    }
}
int l1=ArrayList1.size();int l2=ArrayList2.size();
int max=Math.max(l1,l2);
ArrayList ArrayListResult=新的ArrayList(最大值);

对于(inti=0;i如果你有这样一张支票怎么办

假设我的数组列表A是[0,1,2],B是[3,4,5,6]

我会检查他们的尺寸,如果尺寸小于,我会在末尾加一个零

然后它不会抛出异常,我可以继续添加

请尝试以下代码:

List<Integer> A = new ArrayList<Integer>();
        List<Integer> B = new ArrayList<Integer>();
        List<Integer> result = new ArrayList<Integer>();
        for (int i = 0; i <= 2; i++) {
            A.add(i);
        }

        System.out.println("A list is below................");
        for (Integer a : A) {

            System.out.println(a);
        }
        for (int i = 3; i <= 6; i++) {
            B.add(i);
        }
        if(A.size()<B.size()){
            A.add(0);
        }
        System.out.println("B list is below................");
        for (Integer b : B) {

            System.out.println(b);
        }
        for (int i = 0; i <=B.size()-1; i++) {
            result.add(A.get(i) + B.get(i));
        }
        System.out.println("After Adding .................");
        for (Integer r : result) {

            System.out.println(r);
        }
List A=new ArrayList();
列表B=新的ArrayList();
列表结果=新建ArrayList();

对于(int i=0;i@J.Lucky这是数字加法,1+3=4,2+5=7…@AeOn你试过什么吗?我是这样看的:你得到了最大的列表(简单的比较)然后在一个循环中,你开始对2个值求和并将其添加到一个新列表中,你必须检查你的循环是否加热了较小ArrayList的长度。你应该从旧的长ArrayList开始向新ArrayList添加元素。实际上,一次迭代就足够了,并且使用
list
界面的
get
set