初始化一个map

Map<String, String> map = new HashMap<String, String>();
map.put("1", "hell");
map.put("2", "hello");
map.put("3", "hel");
map.put("4", "hello");

1、第一种方式,普遍使用

Set<String> keySet = map.keySet();
for (String key : keySet) {
System.out.println("key= " + key + " and value= " + map.get(key));
}

2、第二种方式,容量大时推荐使用

Set<Map.Entry<String,String>> entySet =  map.entrySet();
for (Map.Entry<String, String> entry : entySet) {
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}

实验发现输出的顺序是乱的,排个序吧

1、按照key值排序

首先写个排序类

private static class KeyComparator implements
Comparator<Map.Entry<String, String>> {
public int compare(Map.Entry<String, String> m,
Map.Entry<String, String> n) {
return m.getKey().compareTo(n.getKey());
}
}

把数据放在list里边才可以使用

List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>();
list.addAll(map.entrySet()); KeyComparator kc = new KeyComparator();
Collections.sort(list, kc);
for (Iterator<Map.Entry<String, String>> it = list.iterator(); it
.hasNext();) {
System.out.println(it.next());
}

2、按照Value值排序

private static class ValueComparator implements
Comparator<Map.Entry<String, String>> {
public int compare(Map.Entry<String, String> m,
Map.Entry<String, String> n) {
return m.getValue().compareTo(n.getValue());
}
}

排序输出

list.clear();
list.addAll(map.entrySet());
ValueComparator vc = new ValueComparator();
Collections.sort(list, vc);
for (Iterator<Map.Entry<String, String>> it = list.iterator();
    it.hasNext();) {
System.out.println(it.next());
}

Tips: 如有错误请指出,我会及时修改

遍历Map的两种方法(有排序)的更多相关文章

  1. 转载:遍历Map的四种方法

    http://www.cnblogs.com/kristain/articles/2033566.html 遍历Map的四种方法 public static void main(String[] ar ...

  2. Map 迭代 两种方法

    Map 迭代 两种方法 Map<String, String> map=new HashMap<String,String>(); map.put("1", ...

  3. java 遍历map的四种方法

    16:21:42 Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项( ...

  4. java 遍历Map的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  5. Java中遍历map的四种方法 - 转载

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  6. 遍历map的四种方法

    方法一  在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用.注意:for-each循环在Java 5中被引入所以该方法只能应用于j ...

  7. Java中遍历Map的几种方法

      转自: http://blog.csdn.net/wzb56/article/details/7864911 方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基 ...

  8. java 中遍历Map的几种方法

    方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基于map的key:map.keySet() 而每一类都有两种遍历方式: a.利用迭代器 iterator: b.利 ...

  9. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

随机推荐

  1. 使用VS把ASP.NET 5的应用发布到Linux的Docker上

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...

  2. php获取当前毫秒时间戳

    最近在做一个智能家居项目的后台,需要实时上传用户对智能设备的配置信息到服务器,以便实现同步,因此对于时间的精确度要求比较高,最开始直接是用php的time()函数来获取时间戳,获取的时间精确到秒级别, ...

  3. android selector(转)

    Selector的结构描述: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...

  4. MOS X 下Apache服务器配置,及日志读取

    A01-配置Apache 在当前用户的目录创建一个文件夹 打开finder进入/etc/apache2/etc/apache2 是系统目录,默认不显示 进入该目录有两种方法 i. 显示所有隐藏和系统目 ...

  5. cocos2dx游戏开发——微信打飞机学习笔记(二)——游戏框架

    一.游戏的基本框架: WelcomeScene    ——>    GameScene   ——>   GameOverScene ||                           ...

  6. Problem list

    不定时更新,发现好题目但是没时间写的就添加,写完就删除. hdu5732 求树的重心 poj1741

  7. 《DSP using MATLAB》示例Example4.10

    上代码: b = [1, 0.4*sqrt(2)]; a = [1, -0.8*sqrt(2), 0.64]; % compute the polynomials coefficients given ...

  8. coffeeScript学习02

    闭包 closure = do -> _private = "foo" -> _private console.log(closure()) #=> " ...

  9. 如何查看经过编码的cookie?

    方法1.去在线工具网站(http://tool.oschina.net/encode?type=2)手动复制编码的cookie,转码后查看. 方法2.用火狐浏览器打开网页,如果有历史记录(存在cook ...

  10. CSS总结2

    1.动画: transform:rotate(10deg):  transform:scale(2),  scaleY(2),  scaleX(2), scale(1,1) scale(-1)---让 ...