1.HashMap的遍历

package com.sheepmu;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry; public class KMPText
{
public static void main(String[] args)
{
Map<String,String> map=new HashMap<String,String>();
map.put("key1", "bb");
map.put("key0", "aaa");
map.put("key3", "dddd");
map.put("key2", "cccccccc"); //遍历方法0 我个人最喜欢的遍历。集合的遍历还是用for-each的遍历是最爽滴~
for(Map.Entry<String, String> entry:map.entrySet())//值和value都需要遍历时
{
String key= entry.getKey().toString();
String value=entry.getValue().toString();
System.out.println("entry--->"+entry);
// System.out.println("key---->"+key+" value---->"+value+" ");
} //遍历方法1 此方法效率也很高
Iterator it=map.entrySet().iterator();
while(it.hasNext())
{
Map.Entry entry=(Map.Entry) it.next();
String key= entry.getKey().toString();
String value=entry.getValue().toString();
System.out.println("key---->"+key+" value---->"+value+" ");
} } }

2.HashMap的排序

(1).方法:把map的entry取出来放到list里面,这样就相当于排list

eg:对上面例子的HashMap按key从小到大排orvalue从长到短排

package com.sheepmu;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry; public class KMPText
{
public static void main(String[] args)
{
Map<String,String> map=new HashMap<String,String>();
map.put("key1", "bb");
map.put("key0", "aaa");
map.put("key3", "dddd");
map.put("key2", "cccccccc"); //遍历 hashmap
for(Map.Entry<String, String> entry:map.entrySet())
{
String key= entry.getKey().toString();
String value=entry.getValue().toString();
System.out.println("key---->"+key+" value---->"+value+" ");
}
//按要求排序hashmap
List<Map.Entry<String, String>> list=new ArrayList<Map.Entry<String, String>>(map.entrySet());//!!!
Collections.sort(list, new Comparator<Map.Entry<String, String>>(){//按key值字符串比较从小到大
@Override
public int compare(Entry<String, String> o1,Entry<String, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}}); System.out.println("list---->"+list); Collections.sort(list, new Comparator<Map.Entry<String, String>>(){//按value值字符串长度比较从大到小
@Override
public int compare(Entry<String, String> o1,Entry<String, String> o2) {
return o2.getValue().length()-o1.getValue().length();
}}); System.out.println("list---->"+list);
} }

注:如果希望遍历后的顺序与put进去的顺序一致,则采用LinkendHashMap

package com.sheepmu;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map; public class KMPText
{
public static void main(String[] args)
{
Map<String,String> map=new HashMap<String,String>();
map.put("key1", "bb");
map.put("key0", "aaa");
map.put("key3", "dddd");
map.put("key2", "cccccccc");
System.out.println("hashmap--->"+map); Map<String,String> lmap=new LinkedHashMap<String,String>();
lmap.put("key1", "bb");
lmap.put("key0", "aaa");
lmap.put("key3", "dddd");
lmap.put("key2", "cccccccc");
System.out.println("linkedhashmap--->"+lmap); } }

HashMap的遍历和排序的更多相关文章

  1. c# Dictionary的遍历和排序

    c# Dictionary的遍历和排序 c#遍历的两种方式 for和foreach for: 需要指定首位数据.末尾数据.数据长度: for遍历语句中可以改变数据的值: 遍历规则可以自定义,灵活性较高 ...

  2. HashMap循环遍历方式及其性能对比(zhuan)

    http://www.trinea.cn/android/hashmap-loop-performance/ ********************************************* ...

  3. HashMap循环遍历方式及其性能对比

    主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论.   1. Map的四种遍历方式 下面只是简单介绍各种遍历示例(以HashMap为 ...

  4. Object-c学习之路八(NSArray(数组)遍历和排序)

    今天学习了NSArray的遍历和排序,现在在这里做一下总结: 遍历现在实现了四中方法: 排序大概有三中方法:(代码中都有注释) 关于对象的排序还是以Student和Book为例 每个Student持有 ...

  5. jdk8中关于操作集合的一些新特性,遍历和排序操作

    jdk8增加了不少新的东西,在集合操作这块,就有如 lamda表达式,stream,sort,optional等新的类,主要涉及遍历和排序等方面,新特性提升了不少性能,我们开发就是要拥抱新事物,守着老 ...

  6. PCB 合拼遍历(全排序+旋转90度) 基本遍历方法

    分享一下PCB合拼的组合的遍历方法,在分享之前先纠正一下 PCB拼板之多款矩形排样算法实现--学习  时间复杂度计算错误  一.PCB 合拼(全排序+旋转90度)的时间复杂度是多少? 二.合拼遍历(全 ...

  7. HashMap , TreeMap , TreeMap 默认排序

    Java代码  import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java. ...

  8. HashMap集合-遍历方法

    # HashMap集合-遍历方法 先定义好集合: public static void main(String[] args) { Map<String,String> onemap=ne ...

  9. java 集合之Arraylist的遍历及排序

    最近培训是先学习java基础 从最基本的开始学起 因为今天刚刚开博客 要把上周的一些重点内容归纳一下 1.Arraylist常用遍历以及排序 import java.util.ArrayList; i ...

随机推荐

  1. li里的a标签浮动了,为什么li本身也浮动了?

    <ul> <li><a href="#"></a></li> <li><a href="#& ...

  2. 北京哪儿有卖tods豆豆鞋的?在线等答案、、、、(类似动物园、西单等地)_百度知道

    北京哪儿有卖tods豆豆鞋的?在线等答案....(类似动物园.西单等地)_百度知道 北京哪儿有卖tods豆豆鞋的?在线等答案....(类似动物园.西单等地)

  3. hadoop集群空间使用情况报告脚本

    近期集群空间有点紧张,总是操心空间不足而崩溃,近期扩容又不太现实,经与集群用户沟通发现:集群上存储了非常多没用的历史数据,能够删除,这样就能够通过一个crontab脚本每天生成集群空间使用报告,当使用 ...

  4. OCP读书笔记(16) - 管理资源

    使用者组 创建资源用户组OLTP_GRP,将用户HR,OE加入此组: BEGIN dbms_resource_manager.clear_pending_area(); dbms_resource_m ...

  5. hello MemSQL 入门安装演示样例

    一,介绍 MemSQL号称世界上最快的分布式关系型数据库,兼容mysql但快30倍,能实现每秒150万次事务.原理是仅用内存并将SQL预编译为C++. 二,部署 官网下载地址:http://www.m ...

  6. PostgreSQL代码分析,查询优化部分,pull_ands()和pull_ors()

    PostgreSQL代码分析,查询优化部分. 这里把规范谓词表达式的部分就整理完了,阅读的顺序例如以下: 一.PostgreSQL代码分析,查询优化部分,canonicalize_qual 二.Pos ...

  7. Wix学习整理(4)——关于WiX文件格式和案例HelloWorld的分析

    原文:Wix学习整理(4)--关于WiX文件格式和案例HelloWorld的分析 关于WiX文件格式 .wxs是WiX的源文件扩展名..wxs文件以类XML文件的格式来指定了要构造Windows In ...

  8. Urban Dictionary: psd

    Urban Dictionary: psd psd Share on twitter Share on facebook Share on more 3 up, 1 down It means Poo ...

  9. Restlet+Fastjson 高速构建轻量级 Java RESTful Webservice

    自己入门Java时做过一个小型RESTful Web Service的项目,这里总结一下. 服务的数据交换格式主要採用JSON,服务为REST风格.连接採用Http协议,数据库使用MySQL,OR M ...

  10. mysql自动备份

    #!/bin/bash MyUSER="SET-MYSQL-USER-NAME"     # USERNAME MyPASS="SET-PASSWORD"    ...