我有这样的数据集:
water, 5
eggs, 3
juice, 7
bread, 4
Run Code Online (Sandbox Code Playgroud)
我保存所有这些
HashMap<String, Integer> dataSet = new LinkedHashMap<String,Integer>();
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个函数来打印从最大整数到最小的元素:
juice, 7
water, 5
bread, 4
eggs, 3
Run Code Online (Sandbox Code Playgroud)
我认为最简单的方法是创建一个HashMap数据集的副本,然后我必须运行HashMapCopy,找到最大值,打印最大元素并从列表中删除它.
private static void printMaxToMin(){
dataSetCopy = new LinkedHashMap<String,Integer>(dataSet);
}
Run Code Online (Sandbox Code Playgroud)
如何运行所有列表,找到最大值,每次打印具有最大值的元素对然后删除它?
这是按价值排序的一种方式.
dataSet.entrySet().stream()
.sorted(Map.Entry.<String, Integer>comparingByValue().reversed())
.forEach(x -> {
System.out.println(x.getKey() + ","+ x.getValue());
});
Run Code Online (Sandbox Code Playgroud)
结果:
juice,7
water,5
bread,4
eggs,3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |