当前位置: 首页 > 面试题库 >

如何在Java中对Map的键进行排序?

干高歌
2023-03-14
问题内容

这是一个非常基本的问题,我对Java并不是很好。我有一个Map,我想按排序顺序获取列表或某些键,以便可以对其进行迭代。


问题答案:

使用TreeMap,这是SortedMap接口的实现。它按排序顺序显示其密钥。

Map<String, Object> map = new TreeMap<String, Object>();
/* Add entries to the map in any order. */
...
/* Now, iterate over the map's contents, sorted by key. */
for (Map.Entry<String, ?> entry : map.entrySet()) {
  System.out.println(entry.getKey() + ": " + entry.getValue());
}

如果您使用的另一个Map实现没有按照您的喜好进行排序,则可以将其传递给的构造函数,TreeMap以使用排序键创建新的Map。

void process(Map<String, Object> original) {
  Map<String, Object> copy = new TreeMap<String, Object>(original);
  /* Now use "copy", which will have keys in sorted order. */
  ... 
}

一个TreeMap与实现Comparable接口的任何类型的键一起使用的键,将它们按“自然”顺序放置。对于不需要的键Comparable或不需要的自然键,可以实现自己的键,Comparator并在构造函数中指定该键。



 类似资料:
  • 问题内容: 我有一个同时包含键和值的字符串的Map。 数据如下: 我想根据其键对地图进行排序。因此,最后,我将拥有..依此类推。 最终,我试图从该Map中获取两个字符串。 第一个字符串:问题(顺序为1 ..10) 第二个字符串:答案(与问题的顺序相同) 现在,我有以下内容: 这使我的问题成串出现,但顺序不正确。 问题答案: 简短答案 使用。这正是它的目的。 如果将此地图传递给你,并且你无法确定类型

  • 本文向大家介绍在Java中,如何使用lambda同时按键和值对Map进行排序?,包括了在Java中,如何使用lambda同时按键和值对Map进行排序?的使用技巧和注意事项,需要的朋友参考一下 Map接口实现了Collection接口,该接口提供了Map数据结构的功能。 映射不包含任何重复的键,并且每个键都与一个值相关联。 我们可以使用与它们关联的键来访问和修改值。 在以下两个示例中,我们可以借助l

  • 问题内容: 我有一堂水果课。我正在创建此类的列表,并将每个水果添加到列表中。我想根据水果名称的顺序对该列表进行排序。 我正在使用for循环创建它的列表 我需要使用列表中每个对象的水果名称对该arrayList进行排序 问题答案: 使用这样的: 现在,你的水果清单将基于进行排序。

  • 问题内容: 我们如何排序? 我想根据中的值进行排序。 问题答案: 你是否必须使用HashMap?如果只需要Map Interface,请使用TreeMap 如果要通过比较HashMap中的值进行排序。你必须编写代码才能执行此操作,如果要执行此操作,则可以对HashMap的值进行排序: 如果你想经常访问此排序列表,则可以将元素插入到中,尽管集合和列表的语义有些不同。

  • 问题内容: 我不能在数据库中执行ORDER BY 问题答案: 将数据从ResultSet中移到所需的任何对象表示形式中,然后对数据进行排序,就像此时的其他任何数据一样。 如果您使用Collections.Sort对复杂对象进行排序,则需要实现Comparator。

  • 问题内容: 如何按对象的字段对对象的JSONArray排序? 输入: 所需的输出(按“名称”字段排序): 问题答案: 试试这个: 排序后的JSONArray现在存储在对象中。