输入数字集合,输出升序排列并统计次数的结果。 示例:输入List内容为(1,3,3,5,5,4,4,4,8,8,8,8),输出Map 内容为(1:1,3:2,4:3,5:2,8:4)
时间: 2024-10-19 18:16:33 浏览: 15
当您有一个包含数字的列表,例如 (1, 3, 3, 5, 5, 4, 4, 4, 8, 8, 8, 8),您可以先对这个列表进行排序,然后使用哈希表(如Java中的HashMap或Python的dict)来存储每个数字及其对应的出现次数。以下是步骤:
1. 首先,通过`Collections.sort()`(Java)或`sorted()`(Python)函数对列表进行升序排序。
2. 然后遍历排序后的列表,对于每一个元素,如果它已经在哈希表中,则增加该键对应的值;如果不在,则添加新的键值对,键是数字,初始值设为1。
3. 最后,返回处理过的哈希表,即Map(Java)或字典(Python),其中键是数字,值是它们在列表中的出现次数。
举个例子,在Java中,代码可能会像这样:
```java
import java.util.*;
public Map<Integer, Integer> countNumbers(List<Integer> numbers) {
Map<Integer, Integer> map = new HashMap<>();
Collections.sort(numbers);
for (int num : numbers) {
map.put(num, map.getOrDefault(num, 0) + 1);
}
return map;
}
```
Python中的实现类似:
```python
from collections import Counter
def count_numbers(numbers):
return dict(Counter(sorted(numbers)))
```
阅读全文