【发布时间】:2021-07-11 17:49:25
【问题描述】:
我有一个数组,我的目标是返回唯一元素。我编写了对数组进行排序并将唯一元素存储在 ArrayList 中的代码,但不是只返回[7],而是返回[2,5,7]。为什么会这样?
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
int [] arr = {2, 5, 14, 14, 2, 7, 5};
Arrays.sort(arr);
for (int i =0; i<arr.length-1; i++){
if(arr[i]!=arr[i+1]){
list.add(arr[i]);
}
}
System.out.println(list);
}
【问题讨论】:
-
使用
Set并且不必排序(或者可能带有 distinct 的 lambda) -
您需要检查
arr[i-1]以及arr[i+1](并处理端点)。 -
@Andy 获取 distinct 元素,而不是只出现一次的元素。