gpt4 book ai didi

java - 将两个已排序的 Arraylist 合并为一个已排序的 Arraylist

转载 作者:行者123 更新时间:2023-11-30 08:01:40 26 4
gpt4 key购买 nike

我的代码应该将两个已排序的数组列表合并为一个已排序的数组列表,如果使用的数组列表之一未排序,则它应该返回 null。

public class MergeSorted {
public static void merge(ArrayList<Integer> a, ArrayList<Integer> b) {

for (int i = 0, j = 0; j < b.size(); i++) {
if (i == a.size() || a.get(i) > a.get(j)) {
a.add(i, b.get(j++));
}
}
}
}

这是我尝试过的,但如果它们不相等,我无法理解返回 null 的想法,我是 java 新手,这是我的第二周,所以请耐心等待。我知道我应该有一个 if 语句检查它们是否已排序,还有一个 else 但我应该在 if 中包含什么?

最佳答案

问题

检查两个列表是否已排序,如果已排序,则将两个列表合并为一个已排序列表,而如果列表未排序,则返回 null。

代码解决方案:

尝试以下代码:

public class MergeSorted {
public static List merge(List<Integer> aList, List<Integer> bList) {

List mergeList = new ArrayList<Integer>();

//checking if list 'A' is sorted
List temp = new ArrayList(aList);
Collections.sort(temp);
boolean aSorted = temp.equals(aList);

//checking if list 'B' is sorted
temp = new ArrayList(bList);
Collections.sort(temp);
boolean bSorted = temp.equals(bList);

//if both lists are sorted then merge them
if(true == aSorted && true == bSorted) {
mergeList.addAll(aList);
mergeList.addAll(bList);
Collections.sort(mergeList);
}

return mergeList;
}
}

关于java - 将两个已排序的 Arraylist 合并为一个已排序的 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com