gpt4 book ai didi

Java:通过流将排序的映射键分配给数组

转载 作者:行者123 更新时间:2023-12-02 11:01:49 26 4
gpt4 key购买 nike

我尝试在对 map 进行排序后将 map 键分配给整数数组。

这就是我正在尝试的:

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;
}

但是当我打印数组时,它不会按排序顺序打印,而是按常规 map 顺序打印。

我知道一个方法:forEach(System.out::println) 来打印流本身中的值,但无法分配。

正确的方法是什么?

最佳答案

您的流未对 map 的条目集进行适当排序。此外,仅调用 sorted 不会运行任何排序代码(不执行任何终端操作)。

您可以使用它来获取通过流排序的数组:

int[] hotels = myMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.mapToInt(Map.Entry::getKey)
.toArray();

关于Java:通过流将排序的映射键分配给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51278389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com