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怎么读

小米三国志战略版先锋体验官 - 抢先体验,专属福利等你拿 三国志战略版测试服下载 - 最新测试资格申请入口 三国志战略版势力值计算器 - 在线计算你的势力值 三国志战略版自愈攻略 - 完整攻略指南 三国志战略版S3阵容搭配大全 - 最强阵容推荐与攻略 三国志战略版造币厂可以建几个 - 造币厂建设数量攻略 三国志战略版兵锋攻略大全 - 兵锋获取与使用技巧指南 三国志战略版造币厂最多多少个 - 造币厂数量限制详解 三国志战略版虎杖怎么做 - 完整获取攻略指南 三国志战略版陷阵营治疗攻略 - 最强治疗阵容搭配指南 三国志战略版分城建设指南 - 建几个分城最佳策略 三国志战略版潼关战法卡片大全 - 最全战法攻略 三国志战略版军屯加点攻略 - 最优加点方案与策略指南 三国志战略版乐府高级建筑 - 全面攻略与升级指南 三国志战略版策书点数攻略 - 获取方法与使用技巧 三国志战略版名声上限详解 - 名声系统攻略指南 三国志战略版大型军团势力值排行榜 - 最新战力数据分析 三国志战略版夏侯惇阵容推荐 - 最强搭配攻略 三国志战略版军屯攻略大全 - 军屯玩法详解与技巧 三国志战略版经武战法全攻略 - 经武战法详解与搭配推荐 三国志战略版四星武将大全 - 完整图鉴与攻略 三国志战略版虎帐满级攻略 - 虎帐系统详解与满级效果 三国志战略版工坊几级建造 - 工坊等级建造攻略大全 三国志战略版战法冲突详解 - 完美解决战法搭配问题 三国志战略版吕布主将攻略 - 技能阵容战法详解 三国志战略版小型军屯攻略指南 - 资源获取与建设策略 三国志战略版冲突系统详解 - 战略玩法与攻略指南 三国志战略版兵锋怎么打 - 完整攻略指南 三国志战略版凌统孙权阵容搭配攻略 - 最强吴国组合解析 三国志战略版夏侯渊战法推荐 - 最强武将搭配攻略