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. Oracle heap 表的主键 dump 分析

    1. 创建heap 表: create table t1 (id char(10) primary key,a1 char(10),a2 char(10),a3 char(10)); SQL> ...

  2. make 2>&1 | tee log.txt之小析

    前言 接触过linux的人,或多或少都会了解一点make 2>&1 | tee log.txt这个命令. 1. make是什么? make是linux下一个非常强大的命令,简单点就是你要 ...

  3. nyist oj 311 全然背包 (动态规划经典题)

    全然背包 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 直接说题意,全然背包定义有N种物品和一个容量为V的背包.每种物品都有无限件可用.第i种物品的体积是c,价值是 ...

  4. hdu1069(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 分析: 每种石头有六种方法,那么等效为:有6*n种石头. 根据x和y排序(要保证相应的x.y总有 ...

  5. hdu2062(递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2062 详细分析:http://mamicode.com/info-detail-95273.html ...

  6. malloc函数的一种简单的原理性实现

    malloc()是C语言中动态存储管理的一组标准库函数之一.其作用是在内存的动态存储区中分配一个长度为size的连续空间.其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针 ...

  7. Android Monkey自己主动化測试

    前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...

  8. 已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。

    数学知识太差,一点点积累,高手勿喷. 1. 先求出AB向量 a = ( x2-x1, y2-y1 ) 2. 求AB向量的单位方向向量 b = √((x2-x1)^2 + (y2-y1)^2)) a1 ...

  9. 假设拦截WebView的错误和OS升级到4.4后链接不能点击的问题

    android OS升级到4.4之后,有些WebView的链接我们点击无效了,以下能够解决当中的某一种情况: webviewClient的shouldOverrideUrlLoading方法必须返回f ...

  10. Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式

    Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式 找到eclipse安装文件夹以下的plugins文件夹,搜索 org.eclipse.text ,找到一个jar ...