`
jiava9900
  • 浏览: 86699 次
  • 性别: 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中HashMap的用法.docx

    在Java编程中,HashMap是基于哈希表实现的Map接口的一个实现,它是Java集合框架的重要组成部分,提供了高效、快速的键值对存储和检索能力。HashMap允许任何类型的对象作为键和值,但要求键必须是唯一的,且键和值都...

    泛型应用--图的深度(广度)优先遍历.成语接龙例

    图的遍历是探索图中所有节点的一种算法,常见的有深度优先遍历(DFS, Depth-First Search)和广度优先遍历(BFS, Breadth-First Search)。在Java等支持泛型的语言中,我们可以利用泛型来增加代码的复用性和类型安全...

    java集合MAP三种遍历

    本文将详细介绍Java中Map集合的三种遍历方法及其应用场景、优缺点等,帮助读者更好地理解和掌握Map的使用技巧。 ### 一、Map简介 `Map`接口是Java集合框架的一部分,它提供了基于键值对的数据存储方式。常见的实现...

    HASHMAP排序功能描述

    HashMap排序并不是HashMap本身的功能,而是通过其他手段实现的。根据实际需求,可以选择使用LinkedHashMap或通过转换和排序来达到目的。理解这些方法及其背后的原理,可以帮助我们在编程中更灵活地处理数据结构和...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    ### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...

    java-遍历map

    在Java编程语言中,`Map`接口是一种非常重要的数据结构,用于存储键值对。它在实际应用中极为广泛,特别是在处理关联数据时。本文将深入探讨如何在...希望本文的内容能帮助你更好地理解和使用Java中的`Map`遍历技巧。

    java Map 遍历方法

    ### Java Map遍历方法详解 在Java编程语言中,`Map`接口是集合框架中的一个核心组成部分,它存储键值对映射。本篇文章将详细介绍几种常用的遍历`Map...希望这篇文章能帮助大家更好地理解和掌握Java中`Map`的遍历技巧。

    自己写的一个随机数的例子,采用hashmap排序

    标题中的“自己写的一个随机数的例子,采用hashmap排序”表明这是一个关于生成随机数并使用HashMap进行排序的程序示例。在这个例子中,我们将探讨如何生成随机数、HashMap的数据结构以及其排序机制。 首先,随机数...

    Hashmap 通过对VALUE排序 源代码

    HashMap是Java编程语言中最常用的集合类之一,它提供了一种基于键值对(key-value pair)的数据存储方式,允许我们通过键快速查找对应的值。在Java的HashMap中,元素是无序的,也就是说,它们在内存中的存储位置并...

    Java数据结构和算法..

    Java数据结构和算法是计算机科学中的核心概念,对于任何Java开发者来说,理解并掌握它们都是至关重要的。数据结构是组织和存储数据的方式,而算法则是解决问题的步骤或指令集。在Java编程中,数据结构和算法的应用...

    java中map集合的用法.doc

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于List,List是以索引来访问元素,而Map则是通过键(key)来查找对应的值(value)。Map接口定义了一系列方法,使得我们可以对...

    java遍历特例

    在Java编程中,遍历Map是一种常见的操作方式,尤其在处理键值对数据时尤为重要。本文档主要介绍了几种常用的遍历`Map`的方法,包括使用传统的迭代器、增强for循环(引入于JDK 1.5)以及对`TreeSet`进行排序的示例。 ...

    Java版数据结构与算法.zip

    Java的`java.util.HashMap`和`java.util.LinkedHashMap`是典型的哈希表实现。 6. **树**:包括二叉树、二叉搜索树、平衡树(AVL树、红黑树)等。二叉树的遍历(前序、中序、后序)是基础,而平衡树则保证了查找、...

    本周算法图的拓扑排序Java开发Java经验技巧共6页.p

    在Java开发中,理解并能熟练应用拓扑排序可以显著提高代码效率和问题解决能力。 拓扑排序是将有向无环图的所有顶点排成一个线性的序列,使得对于图中的每一条有向边 `(u, v)`,顶点 `u` 在序列中都出现在顶点 `v` ...

    java中map集合的用法.pdf

    Java提供了多种Map实现,如HashMap、TreeMap、LinkedHashMap等,每种实现有不同的性能特性和排序规则。HashMap是无序的,基于哈希表实现;TreeMap是有序的,基于红黑树实现;LinkedHashMap保持插入顺序或者访问顺序...

    Java HashMap两种简便排序方法解析

    在Java中,要对HashMap进行排序,首先需要得到HashMap中的键的集合(keySet),然后将其转换为数组,最后使用Arrays.sort()进行排序。下面是示例代码: Set set = phone.keySet(); Object[] arr = set.toArray(); ...

    Java数据结构和算法.rar

    Java数据结构和算法是计算机科学中的核心概念,对于任何Java开发者来说,理解并掌握它们都是至关重要的。数据结构是组织和存储数据的方式,而算法则是解决问题的步骤或指令集。这两者结合,可以帮助我们设计出高效、...

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

    本文将深入探讨Java中的各种集合,包括List、Set和Map,以及如何遍历这些集合,并提供了一个集合排序的实例。 首先,让我们从List开始。List是有序的集合,允许有重复元素。ArrayList和LinkedList是两种常见的List...

Global site tag (gtag.js) - Google Analytics