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