【发布时间】:2018-07-11 06:14:39
【问题描述】:
我正在尝试在对地图进行排序后将地图键分配给整数数组。
这是我正在尝试的:
java.util.stream.Stream<Map.Entry<Integer,Integer>> sorted =
myMap.entrySet().stream().sorted(Map.Entry.comparingByValue());
然后这就是我的分配方式:
int [] hotels = new int[myMap.size()];
int i = 0;
Set<Integer> keys = myMap.keySet();
for(Integer k:keys){
hotels[i++] = k;
}
但是当我打印数组时,它不是按排序顺序打印,而是按常规映射顺序打印。
我知道一种方法:forEach(System.out:: println) 打印流本身中的值但无法分配。
正确的方法是什么?
【问题讨论】:
-
嗯,第二个 sn-p 不使用在第一个 sn-p 中创建的流。那么为什么要对键进行排序呢? map() 将条目映射到它们的键,然后是 mapToInt(),然后是 toArray()。
-
怎么样?这就是我要问的。不太了解 java 8 库。
-
然后阅读 javadoc。这就是它的用途。我给了你方法名称。应该不会太难。
-
好的。会看看。
标签: java java-8 stream hashmap