LinkedHashMap-150

问题描述:如何遍历linkedhashmap 本篇文章给大家谈谈一个有趣的事情,以及一个有趣的事情,希望对各位有所帮助,不要忘了收藏本站喔。

LinkedHashMap的优缺点儿

LinkedHashMap-150的相关图片

第一种:

Map map = new HashMap(); 。

Iterator iter = map.entrySet().iterator(); 。

while (iter.hasNext()) { 。

Map.Entry entry = (Map.Entry) iter.next(); 。

Object key = entry.getKey(); 。

Object val = entry.getValue(); 。

}

效率高,以后一定要使用此种方式!

第二种:

Map map = new HashMap(); 。

Iterator iter = map.keySet().iterator(); 。

while (iter.hasNext()) { 。

Object key = iter.next(); 。

Object val = map.get(key); 。

}

效率低,以后尽量少使用!

HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:

public class HashMapTest { 。

public static void main(String[] args) { 。

HashMap hashmap = new HashMap(); 。

for (int i = 0; i < 1000; i ) { 。

hashmap.put("" i, "thanks"); 。

long bs = Calendar.getInstance().getTimeInMillis(); 。

Iterator iterator = hashmap.keySet().iterator(); 。

while (iterator.hasNext()) { 。

System.out.print(hashmap.get(iterator.next())); 。

}

System.out.println(); 。

System.out.println(Calendar.getInstance().getTimeInMillis() - bs); 。

listHashMap(); 。

public static void listHashMap() { 。

java.util.HashMap hashmap = new java.util.HashMap(); 。

for (int i = 0; i < 1000; i ) { 。

hashmap.put("" i, "thanks"); 。

}

long bs = Calendar.getInstance().getTimeInMillis(); 。

java.util.Iterator it = hashmap.entrySet().iterator(); 。

while (it.hasNext()) { 。

java.util.Map.Entry entry = (java.util.Map.Entry) it.next(); 。

// entry.getKey() 返回与此项对应的键 。

// entry.getValue() 返回与此项对应的值 。

System.out.print(entry.getValue()); 。

}

System.out.println(); 。

System.out.println(Calendar.getInstance().getTimeInMillis() - bs); 。

}

对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。

注:Hashtable的遍历方法和以上的差不多!

进行实例分析一下下:

以下通过程序来简单实践一下HashMap的的遍历 。

如果要保持HashMap的遍历顺序和原插入顺序一致,可以使用LinkedHashMap,使用方法和HashMap一样,改一下声明即可:LinkedHashMap myMap = new LinkedHashMap(); 当然需要导入:java.util.LinkedHashMap。

import java.util.Collection; 。

import java.util.HashMap; 。

import java.util.Iterator; 。

import java.util.Map;。

public class MapList {。

public static void main(String[] args) { 。

// TODO Auto-generated method stub 。

HashMap myMap = new HashMap(); 。

myMap.put("hello", ""); 。

myMap.put("bye", "再见"); 。

myMap.put("thanks", ""); 。

myMap.put("ok", "好的"); 。

System.out.println("--------------------遍历key和value----------------------"); 。

for(Iterator iter = myMap.entrySet().iterator();iter.hasNext();){ 。

Map.Entry element = (Map.Entry)iter.next(); 。

Object strKey = element.getKey(); 。

Object strObj = element.getValue(); 。

System.out.println("myMap.get(\""+strKey+"\")="+strObj); 。

}

System.out.println(); 。

System.out.println("--------------------遍历整个HashMap----------------------"); 。

Collection objs = myMap.entrySet(); 。

for (Iterator iterator=objs.iterator(); iterator.hasNext();){ 。

Object obj = iterator.next(); 。

System.out.println(obj); 。

}

System.out.println(); 。

System.out.println("--------------------遍历HashMap的key----------------------"); 。

Collection keys = myMap.keySet(); 。

for (Iterator iterator=keys.iterator(); iterator.hasNext();){ 。

Object key = iterator.next(); 。

System.out.println(key); 。

}

System.out.println(); 。

System.out.println("--------------------遍历HashMap的value----------------------"); 。

Collection values = myMap.values(); 。

for (Iterator iterator=values.iterator(); iterator.hasNext();){ 。

Object value = iterator.next(); 。

System.out.println(value); 。

}

}

}

运行结果:

--------------------遍历key和value---------------------- 。

myMap.get("hello")= 。

myMap.get("thanks")= 。

myMap.get("ok")=好的 。

myMap.get("bye")=再见。

--------------------遍历整个HashMap---------------------- 。

hello=

thanks=

ok=好的

bye=再见

--------------------遍历HashMap的key---------------------- 。

hello

thanks

ok

bye

--------------------遍历HashMap的value---------------------- 。

好的

再见

Java程序基础错误的相关图片

Java程序基础错误

简单的说

优点:可前后查询

缺点:效率没有hashmap高。

的相关图片

我想是LZ你抄错了吧。。 不可能有一本书这么糟糕的。。。如果lz你的书的确是这样写。。估计也是盗版的或者别的啥原因。。

换本吧。。

LZ你的代码有很多错。。比如,方法里嵌套方法,方法名相同.....。

正确的代码应该是这样的

//定义一个Book类

class Book

private String name;    //Book的名字。

    static int id = 0;    //Book的id,id应该是静态的。因为你下面要输出每本书的id号。

public String getName()     //取得Book的名字。

    {

        id++;     //id号自加。

        setName("Java");    //设置Book的名字为“Java”

        return id + " --" + this.name;    //返回id号和书本的名字(用一个+号,意思是把整数和字符串2个值进行拼接。。)

    }

private void setName(String name)    //设置Book的名字。

    {

        this.name = name;。

    }

    public Book getNames()    //返回调用这个方法的对象。

    {

        return this;。

    }

public class Test。

    public static void main(String args[])。

    {

        Book book = new Book();    //实例化一个Book的对象。

        System.out.println( book.getName() );    //用book这个对象去调用方法并打印出来getName()。

}

运行结果:

如有不懂。。可以追问。。。

望采纳

的相关图片

原文地址:http://qianchusai.com/LinkedHashMap-150.html

lanadelrey-50

lanadelrey-50

emby如何连接服务器-90,emby 连接到服务器

emby如何连接服务器-90,emby 连接到服务器

therapeutic-120

therapeutic-120

女生野生动物专业就业,女生野生动物专业就业怎么样

女生野生动物专业就业,女生野生动物专业就业怎么样

infusing-60

infusing-60

五菱之光行车记录仪安装视频,五菱之光行车记录仪安装视频讲解

五菱之光行车记录仪安装视频,五菱之光行车记录仪安装视频讲解

extremely-110

extremely-110

什么什么其人作文700字,什么什么其人作文700字写同学

什么什么其人作文700字,什么什么其人作文700字写同学

专升本的感悟心得3000字,专升本的感悟心得2000字

专升本的感悟心得3000字,专升本的感悟心得2000字

croquet,croquet怎么读

croquet,croquet怎么读

三国志战略版夏日炎炎 - 火热夏日活动专题 三国志战略版 - 鬼神霆威专题攻略 三国志战略版造币厂满宠 - 满宠武将攻略与战法搭配指南 三国志战略版 灼烧连营攻略大全 - 武将搭配与战术指南 三国志战略版地级势力值详解 - 完整攻略指南 三国志战略版拔城技巧 - 实用攻城攻略大全 三国志战略版攻城拔寨攻略大全 - 最新阵容搭配与技巧分享 三国志战略版乐府使用攻略 - 完整指南与技巧 三国志14战法大全 - 完整战法系统解析与使用指南 三国志战略版怎么提升名声 - 完整攻略指南 三国志战略版天下骑配置攻略 - 最强骑兵阵容搭配指南 三国志战略版军屯加点攻略 - 最优加点方案与策略指南 三国志战略版百骑劫营与鬼神霆威详解 - 游戏攻略 三国志战略版夏侯渊T0阵容推荐 - 最强阵容搭配攻略 三国志战略版2024潼关之战 - 史诗级战略对战,再现三国争霸 三国志战略版游戏结构分析 - 深度解析SLG手游核心玩法 三国志战略版测试服下载 - 最新测试资格申请入口 三国志回血战法 - 完整攻略与技巧大全 三国志战略版治疗战法系数大全 - 最全治疗战法数据表 三国志战略版虎帐造币厂攻略 - 建筑功能与升级指南 三国志战略版先锋测试服下载 - 官方首发 三国志战略版夏侯渊武将专题 - 技能搭配与使用攻略 三国志战略版闪避和虚弱详解 - 游戏攻略指南 三国志战略版吕布张辽组合攻略 - 最强输出搭配详解 三国志战略版测试服怎么申请 - 完整申请指南 三国志战略版7级势力值攻略 - 快速提升势力值指南 三国志战略版西凉路线攻略 - 完整发展指南 三国志战略版虚弱和规避机制详解 - 游戏攻略指南 三国志14征伐战法全攻略 - 完整战法系统解析 三国志战略版连营伤害系数详解 - 游戏攻略指南