我的代码应该将两个已经排序的数组列表合并成一个排序的数组列表,如果使用的数组列表之一没有排序,那么它应该返回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里面包含什么呢?
3条答案
按热度按时间sxissh061#
问题
检查两个列表是否排序,如果是,则将两个列表合并为一个排序列表,而如果列表未排序,则返回null。
编码方案:
请尝试以下代码:
lsmepo6l2#
ArrayList
实现包含List<Integer>
,因此排序是按自然顺序进行的。如果相等返回true
或false
。您可以根据需要更改它以返回任何标志。Sort and compare 2 lists if equal - List of String
例如,
List<Integer> mergedList = CollectionUtils.collate(list1, list2);
gxwragnw3#
一般的方法是这样的:
你可以很容易地用Integer替换所有这些通用的T,如果你只需要它的话。