Java如何实现对HashMap进行排序

  

Java如何实现对HashMap进行排序?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> 1。值():

返回映射集合的所有价值的收藏集合(于集合中无序存放)

进口java.util。*;
  
  公开课主要{
  公共静态void main (String [] args) {
  String> Map<字符串;地图=new HashMap<字符串,String> ();//构建键值对为& lt;字符串,String>的映射集合
  map.put (“a",“aaa");
  map.put (“b",“bbb");
  map.put (“c",“ccc");
  
  Collection收集=map.values ();//获取映射集合的所有价值的收藏集合(于集合中无序存放)
  System.out.println(收集);
  }
  }/* *
  *运行结果
  * (bbb, ccc, aaa)
  */

<强> 2。键盘():

返回映射集合的所有键的设定集合(于组集合中无序存放)

通过迭代取出所有钥匙,再利用得到()方法获取的值,为(类型元素:集合)的本质是获取集合的迭代器进行迭代

进口java.util。*;
  
  公开课主要{
  公共静态void main (String [] args) {
  String> Map<字符串;地图=new HashMap<字符串,String> ();//构建键值对为& lt;字符串,String>的映射集合
  map.put (“a",“aaa");
  map.put (“b",“bbb");
  map.put (“c",“ccc");
  
  Set键盘=map.keySet ();//获取映射集合的所有键的设定集合(于组集合中无序存放)
  Iteratoriter=keySet.iterator ();//获取键盘集合的迭代器
  而(iter.hasNext ()) {
  字符串键=iter.next ();
  字符串值=https://www.yisu.com/zixun/map.get(关键);
  system . out。println(“关键:”+键+“- ->值:+值);
  }/*
  (字符串键:键盘){
  字符串值=map.get(关键);
  system . out。println(“关键:”+键+“- ->值:+值);
  }
  */}
  }/* *
  *运行结果
  *关键:b - ->值:bbb
  *关键:c - ->值:ccc
  *关键:- ->值:aaa
  */

<强> 3。entrySet():

返回映射集合的所有“映射“集的组合,这里规范每个“映射“的类型为Map.Entry(于组集合中无序存放)

通过迭代取出所有的“映射”,再利用getKey (), getValue()方法获取相应的键,值

进口java.util。*;
  
  公开课主要{
  公共静态void main (String [] args) {
  String> Map<字符串;地图=new HashMap<字符串,String> ();//构建键值对为& lt;字符串,String>的映射集合
  map.put (“a",“aaa");
  map.put (“b",“bbb");
  map.put (“c",“ccc");
  
  Set比;entrySet=map.entrySet ();//获取映射集合的所有“映射“集的组合,这里规范每个映射的类型为Map.Entry(于组集合中无序存放)
  Iterator比;iter=entrySet.iterator ();//获取entrySet集合的迭代器,Map.Entry为迭代元素的类型
  而(iter.hasNext ()) {
  String> Map.Entry<字符串;项=iter.next ();
  字符串键=item.getKey ();
  字符串值=https://www.yisu.com/zixun/item.getValue ();
  system . out。println(“关键:”+键+“- ->值:+值);
  }/*
  (地图。进入<字符串,字符串>项:entrySet) {
  字符串键=item.getKey ();
  字符串值=item.getValue ();
  system . out。println(“关键:”+键+“- ->值:+值);
  }
  */}
  }/* *
  *运行结果
  *关键:b - ->值:bbb
  *关键:c - ->值:ccc
  *关键:- ->值:aaa
  */

有以上方法作为基础,那么我们很容易想到对HashMap进行排序的两种方法

1。通过键盘()获取映射集合的所有键集的组合,由集列表合获取其中所有元素,通过比较器对元素为键的列表集合进行排序

2。通过entrySet()获取映射集合所有映射集的组合,由集列表合获取其中所有元素,通过比较器对元素为“映射“集列表合进行排序

通过对比较器比较方法的覆盖,两者还可以实现利用值进行排序。有关java中比较和比较器比较的详解

进口java.util。*;
  
  公共类DescKeyComparator实现Comparator ();//构建键值对为& lt;字符串,String>的映射集合
  map.put (“a",“aaa");
  map.put (“b",“bbb");
  map.put (“c",“ccc");
  
  SetentrySet=map.keySet ();//获取映射集合的所有键的设定集合(于组集合中无序存放)
  List

Java如何实现对HashMap进行排序