当前位置: 首页 > 知识库问答 >
问题:

将HashMap的键保存到ArrayList中,按Java中的HashMap值排序

单于轶
2023-03-14

我有一个<code>HashMap

有没有比排序HashMap更好的解决方案,然后使用

ArrayList<String> sortedKeys = new ArrayList<String>(myHashmap.keySet());

顺便说一句,我一开始并不一定要使用HashMap,但值设置了顺序,我不想交换键和值,因为浮点值可能会改变好几次。

共有2个答案

赫连俊雄
2023-03-14

如果我理解正确,您可以先从键创建数组列表,然后排序:

ArrayList<String> list = new ArrayList<>(myHashMap.keySet());
list.sort(Comparator.comparing(myHashMap::get));
支华池
2023-03-14

您可以使用流API:

List<String> sortedKeys = myMap.entrySet()
                       .stream()
                       .sorted(Map.Entry.comparingByValue())
                       .map(Map.Entry::getKey)
                       .collect(Collectors.toCollection(ArrayList::new));
 类似资料:
  • 我在Java有一个源HashMap: 存储各种长度的关键字。我想遍历这个HashMap并计算出存储在映射的字符串部分中的ngram的长度,该字符串部分定义了每个关键字的文本。 使用这些数据,我想填充一个HashMaps的目标ArrayList: 结果是,ArrayList的索引对应于给定关键字的ngram大小减去1,即keywordNGrams(0)将接收unigrams,keywordNGram

  • 问题内容: 我需要根据存储在其中的值对我进行排序。在包含存储在手机联系人的名字。 另外,我还要求在对值进行排序时对键进行自动排序,否则你可以说键和值绑定在一起,因此值的任何更改都应反映在键中。 要求的输出: 问题答案: 尝试下面的代码对我来说很好。你可以选择升序和降序 编辑:版本2 使用了新的Java功能,例如流for-each等 如果值相同,则地图将按键排序

  • 今天好,这有点让我迷惑(大脑冻结!)好像少了些什么。有一个我用HashMap填充的ArrayList。现在我放入了我的HashMap和ArrayList。 由于am解析JSON,arraylist的大小显著增加。现在我的问题是如何从ArrayList中的两个映射键中获得值?我试过这个 但我似乎不能得到所有的值。映射大小总是返回值2,这只是元素。如何从ArrayList中的映射键获取所有值?谢谢

  • 问题内容: 你好,我需要实现一个接收HashMap并按键对它的值进行排序(mergeSort)的方法 (不使用TreeMap,SortedMap或Collections.Sort或使用JAVA Packages中的任何排序解决方案) 。我的问题是处理通配符类型…这是我的实现(由于使用通配符而返回编译错误) 我感谢您的帮助! 问题答案: 像其他评论者一样,我建议您阅读Java中的泛型主题。您在合并中

  • 假设我有一个带有字符串键和整数值的HashMap: 我想通过将这些信息放入另一个HashMap中来切换键和值。我知道一个HashMap不能有重复的键,所以我尝试将信息放入一个HashMap中,其中包含映射到字符串ArrayList的键的整数,这样我就可以有一个整数映射到多个字符串: 我在这里的目标是能够对任何一组数据进行“反转”,否则我只能硬编码值。我从上面的代码中得到的输出是: 正如您所看到的,

  • 嗨,我有一个HashMap的ArrayList,我需要HashMap按其键值排序。 循环开始: 循环结束: 我需要newList按键标记排序。 我怎么弄?