Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对哈希映射进行排序_Java_Sorting_Hashmap_Treeset - Fatal编程技术网

Java 对哈希映射进行排序

Java 对哈希映射进行排序,java,sorting,hashmap,treeset,Java,Sorting,Hashmap,Treeset,我需要根据键对哈希映射进行排序。键是一个字符串(因此我需要按字母顺序排序),值是一个整数。 我试着在网上搜索,发现一旦你把树放进去,它就会自动排序。有没有人能指导我如何把它转换成一个树集,或者哪怕我能用散列图对它进行排序 提前感谢因为hashmaps根据定义是未排序的映射,所以您需要使用另一个容器。根据您的需要,有几种选择,有些是: 暂时使用TreeMap代替HashMap。这将是最好的选择,除非您必须保留hashmap 使用TreeSet对键进行排序,然后迭代键并从HashMap中提取值 执行

我需要根据键对哈希映射进行排序。键是一个字符串(因此我需要按字母顺序排序),值是一个整数。 我试着在网上搜索,发现一旦你把树放进去,它就会自动排序。有没有人能指导我如何把它转换成一个树集,或者哪怕我能用散列图对它进行排序


提前感谢

因为hashmaps根据定义是未排序的映射,所以您需要使用另一个容器。根据您的需要,有几种选择,有些是:

  • 暂时使用
    TreeMap
    代替
    HashMap
    。这将是最好的选择,除非您必须保留hashmap
  • 使用
    TreeSet
    对键进行排序,然后迭代键并从
    HashMap
    中提取值
  • 执行与选项2中相同的操作,但在迭代期间填写新的
    LinkedHashMap
    。这将导致映射以插入顺序返回值,由于使用了排序集,插入顺序恰好是排序顺序。请注意,向
    LinkedHashMap
    添加元素会将任何新元素追加到末尾-
    LinkedHashMap
    仍按插入顺序排序

  • 你可以用树形图。您可以使用以映射为参数的构造函数创建树映射。您不能对HashMap进行排序,因为HashMap无序存储元素。首先必须将其转换为另一个数据结构,如列表/数组/树映射等。不,我“不必”使用哈希映射,我只是从一开始就使用它,我意识到它是一个未排序的映射(我有点业余)。那么,如果我用树形图替换它,它会自动排序吗?@bawa是的,你添加到树形图中的东西会自动排序。