Java中如何对HashMap进行排序

=Start=

缘由:

Java中HashMap的值是没有顺序的,它是按照key的HashCode来实现的。对于这个无序的HashMap我们要怎么来实现排序呢?这里就整理总结一下,方便以后查阅、参考。

正文:

参考解答:

先说结论,如果着急的话可以先看这个/只看这个就够:

Java中对 HashMap 进行排序的一般步骤就是:

1、先根据 HashMap 的内容生成 list ;
2、再调用 Collections.sort(list[, new Comparator]) 对 list 进行就地排序;
2.1、 内部进行的比较一般是通过 .compareTo() 方法进行的,但是也可以自行修改「大于返回1,小于返回-1,等于返回0」;
3、 如果只要排序后的结果的话,可以直接用 list ;如果还要一个map的话,就新建一个LinkedHashMap来存放list的结果。


Java中的原生排序方法整理:

  • 对基本类型排序 # Arrays.sort()
  • 对对象数组排序 # 则要自己实现 java.util.Comparator 接口

Java中打印数组的方法,参考「链接」。


再放整理后的代码:

 

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3973.html

《Java中如何对HashMap进行排序》上有3条评论

  1. java集合遍历的几种方式总结及比较
    https://www.cnblogs.com/leskang/p/6031282.html

    集合类的通用遍历方式,用迭代器迭代:
    Iterator it = list.iterator();
    while(it.hasNext()) {
    Object obj = it.next();
    }

    Map的几种遍历方式
    List的几种遍历方式
    数据元素是怎样在内存中存放的?
    每个遍历方法的实现原理是什么?
    各遍历方式对于不同的存储方式,性能如何?
    各遍历方式的适用于什么场合?

    Java的最佳实践是什么?
    if (list instanceof RandomAccess) {
    //使用传统的for循环遍历。
    } else {
    //使用Iterator或者foreach。
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注