This program reads a lot of integers, in which may be duplicated numbers. The program picks out all the duplicated ones and sorts the remainders in a descendent order. 函数接口定义: public static ArrayList<Integer> pick(ArrayList<Integer> a); a is the ArrayLi
时间: 2023-07-02 07:09:26 浏览: 127
st containing integers. The function should return an ArrayList containing all the duplicated integers, sorted in a descending order.
以下是代码实现:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
public class DuplicatePicker {
public static ArrayList<Integer> pick(ArrayList<Integer> a) {
ArrayList<Integer> result = new ArrayList<>();
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < a.size(); i++) {
int current = a.get(i);
if (set.contains(current)) {
result.add(current);
} else {
set.add(current);
}
}
Collections.sort(result, Collections.reverseOrder());
return result;
}
}
```
首先,我们创建一个空的 ArrayList `result`,以及一个 HashSet `set`,用于存储已经出现过的数字。
然后,我们遍历输入数组中的每个数字。对于每个数字,如果它已经在 `set` 中出现过,说明它是一个重复的数字,我们将它添加到 `result` 中;否则,将它添加到 `set` 中。
最后,我们对 `result` 进行降序排序,并返回结果。
阅读全文