`
jiava9900
  • 浏览: 82699 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Java中HashMap排序和遍历 .

阅读更多

    <div id="article_content" class="article_content">
HashMap排序

1、按照key排序

对于java中Map的排序,有排序Map,比如TreeMap,对于这个Map,首先只能按照键排序,其次再put和remove的时候由于需要排序,性能上会有所牺牲。

这种方案,使用hashmap进行创建和添加,如果需要按照key排序,则可以将该hashmap作为参数传递到new TreeMap(hashmap),则可以完成按照key的排序:


<div class="dp-highlighter">
<p class="java" style="display: none;" title="java Map排序(按key和按value)">TreeMap treemap = new TreeMap(hashmap);

?

2、按照value排序

使用hashmap,然后添加比较器,进行排序

?? Map<String,?Integer>?keyfreqs?=?<span class="keyword"><span style="color: #7f0055;">new</span></span>?HashMap<String,?Integer>();???

?? ArrayList<Entry<String,Integer>>?l?=?<span class="keyword"><span style="color: #7f0055;">new</span></span>?ArrayList<Entry<String,Integer>>(keyfreqs.entrySet());?? ??

?? Collections.sort(l,?<span class="keyword"><span style="color: #7f0055;">new</span></span>?Comparator<Map.Entry<String,?Integer>>()?{?? ??

<span class="keyword"><span style="color: #7f0055;"><span style="color: #000000;">?? </span>public</span></span>?<span class="keyword"><span style="color: #7f0055;">int</span></span>?compare(Map.Entry<String,?Integer>?o1,?Map.Entry<String,?Integer>?o2)?{?? ??

<span class="keyword"><span style="color: #7f0055;"><span style="color: #000000;">??????????????? </span>return</span></span>?(o2.getValue()?-?o1.getValue());?????}?????}); ??

<span class="keyword"><span style="color: #7f0055;">?? </span></span>

<span class="keyword"><span style="color: #7f0055;">?? for</span></span>(Entry<String,Integer>?e?:?l)?{ ??

?????? System.out.println(e.getKey()?+?<span class="string"><span style="color: #0000ff;">"::::"</span></span>?+?e.getValue()); ??

????? }??

?

HashMap遍历

在java中使用HashMap是主要有两种遍历方法,代码如下:

第一种:


<p class="alt">Iterator?iterator?=?hashmap.keySet().iterator();

<p class="alt">???? Object?value?=?hashmap.get(iterator.next());

<p class="alt">?
<span>第二种:</span>

<span><span>HashMap?hashmap?=?</span><span class="keyword">new</span><span>?HashMap();</span> </span>

<span><span>Iterator?iterator?=?hashmap.entrySet().iterator();???????????</span> </span>

<span><span class="keyword">while</span><span>?(iterator?.hasNext())?{</span> </span>

<span><span>??? Entry?entry?=?(Entry)?iterator?.next();</span> </span>

<span>??? <span>Object?value=?entry.getValue();</span> </span>

<span>??? <span>Object?key?=entry.getKey();</span> </span>

<span><span>?? }</span></span>


 
0
0
分享到:
评论

相关推荐

    java遍历特例

    java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); ...

    java中的各种集合及其遍历总结(附完整例子)

    java中的各种集合及其遍历总结;例子包括:List(ArrayList、LinkList),Set(HashSet、TreeSet),Map(HashMap),还有一个集合排序的例子

    借助JAVA的api的方法写一个排序的例子.pdf

    但如果循环是为了找到特定元素,那目前还没有什么优化的办法,使得遍历数组和采用HashMap 的版本一样快。以数据库的性能为例,但运行环境的任何部分都可能会引起性能问题。 对于整体系统,采取结构化方法针对系统的...

    Java用Comparator来排序.pdf

    但如果循环是为了找到特定元素,那目前还没有什么优化的办法,使得遍历数组和采用HashMap 的版本一样快。以数据库的性能为例,但运行环境的任何部分都可能会引起性能问题。 对于整体系统,采取结构化方法针对系统的...

    如何遍历Map-Java版源码

    博文《Java中如何遍历map》源码。可以直接粘贴博文中源码 也可以下载它,免费了。

    Java服务器端开发面试.doc

    涉及到各种效率问题等,里面最好阅读一下源码 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一 个元素,然后size是否变化等等问题 JAVA垃圾回收,内存结构 异常的种类 Object类,哪些...

    java面试题

    8. HashMap和Hashtable的区别。 10 9. final, finally, finalize的区别。 10 10. sleep() 和 wait() 有什么区别? 10 11. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 10 12. error和...

    JAVA面试题最全集

    9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...

    Java 集合方面的面试题

    HashMap 和 TreeMap 有什么区别? 什么是迭代器?如何使用它来遍历集合? 什么是 fail-fast 机制? 如何使用 Collections 类对集合进行排序? 什么是 Comparable 和 Comparator 接口?它们有什么区别? 如何使用 ...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

    疯狂JAVA讲义

    1.3.2 Java程序的运行机制和JVM 6 1.4 开发Java的准备 7 1.4.1 安装JDK 8 学生提问:不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 8 学生提问:为什么不安装公共JRE系统呢? 9 1.4.2 设置...

    高级java笔试题-interview:采访记录

    3.java线程中sleep和wait方法区别 4.谈谈常用容器类的原理和应用场景 面试 1.一个文件中有100万个整数,由空格分开,在程序中判断用户输入的整数是否在此文件中。说出最优的方法 金山一面(Android开发) 1....

    set.list.map接口

    2. 两个实现类HashSet(LinkHashSet)和TreeSet,TreeSet有排序功能(Set set=new TreeSet();set.add(new Integer(8)); set.add(new Integer(4)); set.add(new Integer(7));)输出后的结果是:4 7 8 Eg: package test...

    达内 coreJava 习题答案

    其中a为1至9之中的一个数,项数也要可以指定。 import java.util.Scanner; class Multinomial{ public static void main(String[] args){ int a; //定义输入的 a int howMany; //定义最后的一项有多少个数字 ...

    人工智能-项目实践-搜索引擎-java实验1-实现搜索引擎的倒排索引数据结构

    ◦对这些集合类的操作包括:遍历、添加、排序,得到集合的大小、判断集合里是否已存在指定元素 第三是熟悉对象的序列化和反序列化 作为类的方法来实现下面二个方法 ◦public abstract void writeObject...

    14天快速掌握Java数据结构与算法

    线性表 栈和队列 HashMap和LinkedHashMap 树 二叉树 图 图的遍历与最小生成树 图的最短路径与拓扑排序 算法简介 算法排序 排序与归并 递归与穷举 贪心和分治 动态规划和回溯

    超级有影响力霸气的Java面试题大全文档

     JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...

    Java学习笔记-个人整理的

    {4.4.1}java.util.HashMap}{83}{subsection.4.4.1} {4.5}\ttfamily java.util.HashSet}{84}{section.4.5} {4.6}泛型}{84}{section.4.6} {4.7}集合的迭代(Iterator)}{85}{section.4.7} {4.8}Collections集合...

Global site tag (gtag.js) - Google Analytics