例如: 输入 [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 9, 9, 9]
输出 [9, 4, 3, 1, 0]
public static List<Integer> countArrayListNumberAriseIsOdd(List<Integer> arr){
Map<Integer, Integer> numAndCount = new HashMap<Integer, Integer>();
//统计每个元素出现的次数
for (int i = 0; i < arr.size(); i++) {
if (numAndCount.get(arr.get(i)) == null){
numAndCount.put(arr.get(i), 1);
}else {
numAndCount.put(arr.get(i), numAndCount.get(arr.get(i)) + 1);
}
}
arr.clear();
//统计出现次数为奇数的元素
for (int key : numAndCount.keySet()){
if (numAndCount.get(key) % 2 != 0){
arr.add(key);
}
}
Collections.sort(arr, Collections.<Integer>reverseOrder());
return arr;
}
测试:
public class CountArrayListNumberAriseIsOdd {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<Integer>();
Collections.addAll(arr,0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 9, 9, 9);
System.out.println("输入:" + arr);
System.out.println("输出:" + countArrayListNumberAriseIsOdd(arr));
}
}
输出结果:

该博客介绍了如何用Java编写一个函数,统计列表中每个元素出现的次数,并找出出现次数为奇数的元素,然后将这些元素按降序排序。示例代码展示了从输入列表[0,1,2,2,3,3,3,4,4,4,4,4,9,9,9]中,如何得到输出[9,4,3,1,0]的过程。

被折叠的 条评论
为什么被折叠?



