写一个合并两个数组列表的方法,两个数组列表中的元素交替

写一个方法

公共静态ArrayList merge(ArrayList a,ArrayList b)

合并两个数组列表,两个数组列表中的元素交替出现。如果一个数组列表短于另一个数组列表,则请尽可能长地交替,然后附加较长数组列表中的其余元素。例如,如果a是

1 4 9 16

b是

9 7 4 9 11

然后合并返回数组列表

1 9 4 7 9 4 16 9 11


我尝试做的是编写一个带if语句的for循环,以便当i为偶数(i%2 ==

0)时,将数组列表a中的数字添加到数组列表a中;当i为an时,将数组列表b中的数字添加到数组列表中奇数。但是,我不确定如何处理一个数组列表可能比另一个数组列表更长的事实。有人可以帮我吗?

:好的,这是代码(但远非正确):

public static ArrayList<Integer> merge(ArrayList<Integer> een, ArrayList<Integer> twee)

{

ArrayList<Integer> merged = new ArrayList<Integer>();

for(int i = 0; i<100; i++)

{

if(i%2!=0)

{

merged.add(a.get(i));

}

if(i%2 == 0)

{

merged.add(b.get(i));

}

}

System.out.println(merged);

return merged;

}

回答:

没有迭代器:

public static ArrayList merge(ArrayList a, ArrayList b) {

int c1 = 0, c2 = 0;

ArrayList<Integer> res = new ArrayList<Integer>();

while(c1 < a.size() || c2 < b.size()) {

if(c1 < a.size())

res.add((Integer) a.get(c1++));

if(c2 < b.size())

res.add((Integer) b.get(c2++));

}

return res;

}

以上是 写一个合并两个数组列表的方法,两个数组列表中的元素交替 的全部内容, 来源链接: utcz.com/qa/425846.html

回到顶部