我正在将两个ArrayList
s 与以下代码合并。该代码正在运行并给我想要的结果,但我想要一个更高效的版本。以下是条件。
- 方法接受两个列表,并且两个列表的元素都按降序排列 (5,4,3,2)
- 方法接受一个整数来决定结果的大小
ArrayList
。 - 第一个输入列表大小永远不会大于结果的大小
ArrayList
。
代码:
public ArrayList<Integer> mergeList(ArrayList<Integer> first,ArrayList<Integer> second, int n){
//case 1: when both list are null.
if(first == null && second == null )
return null;
//case 2: when first list is null but second list have elements
else if( first == null && second != null){
return second.size() >=n ? new ArrayList<Integer>(second.subList(0, n)) : second;
}
//case 3: when first list have record and second list is null
else if(first != null && second == null){
return first;
}
//case 4: when both list have elements
else {
first.addAll(second);
Collections.sort(first);
Collections.reverse(first);
return first.size()>=n ? new ArrayList<Integer>(first.subList(0, n)) : first;
}
}
}