`
jiava9900
  • 浏览: 83528 次
  • 性别: 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 的版本一样快。以数据库的性能为例,但运行环境的任何部分都可能会引起性能问题。 对于整体系统,采取结构化方法针对系统的...

    java集合类面试题总结

    HashMap 和 Hashtable 都是 Java 中的散列表实现,但它们有所不同。HashMap 允许一个 null 键和多个 null 值,而 Hashtable 不允许 null 键和 null 值。Hashtable 还是同步的,这意味着它是线程安全的,但这也使得它...

    如何遍历Map-Java版源码

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

    浅谈Java中的Set、List、Map的区别.docx

    Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最基本的集合接口,声明了适用于 Java ...

    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语言的Util类详细介绍

    List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加、删除、设定元素,还能向前或向后遍历。 实现List接口的常用类有...

    JAVA面试题最全集

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

    Java 集合方面的面试题

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

    Java容器有两种基本类型Collection 和 Map

    Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能保存一个元素。Collection 的主要实现类有 List 和...

    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 设置...

    并发编程面试题以及答案.docx

    * Java 中的排序算法实现:使用 Java 实现冒泡排序、快速排序、归并排序等。 二、Java 基础 * 接口与抽象类的区别:接口和抽象类的概念、特点和应用场景。 * Java 中的异常:unchecked 异常、checked 异常、Error...

    高级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; //定义最后的一项有多少个数字 ...

Global site tag (gtag.js) - Google Analytics