这是我的代码:
for (int i = 0, j = 0; i < array1.size() && j < array2.size();) {
if (array1.get(i) < array2.get(j)) {
list.add(array1.get(i));
i++;
} else {
list.add(array2.get(j));
j++;
}
}
问题是我无法获得最大的数字。例如,如果我有两个数组 {1, 3, 5} 和 {2, 4, 6},则该代码会给出 {1, 2, 3, 4, 5}。我该如何修复它?
最佳答案
使用流的答案是正确的,但为了完整性,我想从您的代码开始提供解决方案。
int i, j;
for (i = 0, j = 0; i < array1.size() && j < array2.size();) {
if (array1.get(i) < array2.get(j)) {
list.add(array1.get(i));
i++;
} else {
list.add(array2.get(j));
j++;
}
}
while(i < array1.size()) list.add(array1.get(i++));
while(j < array2.size()) list.add(array2.get(j++));
关于java - 将两个已排序的数组列表合并为一个已排序的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44088915/