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

三国志赵云传详细攻略 - 全关卡通关技巧与秘籍 三国志战略版张飞小桃园阵容搭配攻略 三国志战略版陈到阵容搭配推荐 - 实用阵容与战法指南 三国志战略版麒麟弓配将推荐 - 实用搭配攻略 三国志战略版赵云攻略 - 实用配将与战法搭配指南 经典街机游戏《三国战纪》专题介绍 三国志战略版电脑版官方下载 - 经典策略手游PC体验 三国志12免安装中文版下载 - 经典策略游戏 三国志2街机游戏修改版 - 经典怀旧游戏在线玩 三国志战略版面板属性详解 - 基础属性与成长机制 三国志战略版:被低估的“垃圾武将”如何逆袭升值? 三国志无惧骑阵容详解 - 策略与搭配指南 三国志战略版残卷换不了?常见问题与解决方法 三国志战略版太尉盾打地攻略 - 高效开荒阵容搭配指南 三国志战略版:定军山之战详解 - 经典战役复刻与战术分析 三国志战略版甘宁武将推荐 - 属性、战法与阵容搭配指南 三国志战略版老玩家回归新服指南 - 实用攻略与建议 三国志II - 经典历史策略游戏 三国志大战TCG攻略指南 - 新手入门与进阶技巧 三国志战略版渊骑版本介绍 - 朴素专题页 三国志战略版渊骑阵容搭配攻略 - 简明实用指南 三国志战略版 军屯系统详解 - 玩法与攻略 三国志战略版满红太尉盾阵容搭配详解 三国志战略版无惧骑阵容搭配攻略 - 简明指南 三国志战略版单机版破解版 - 简易介绍页面 三国志战略版刘备蜀盾阵容搭配指南 三国志8重制版更新日志 - 官方补丁与优化说明 三国志战略版孙权怎么打?实用攻略详解 三国志9简体中文版下载 - 经典策略游戏免费获取 三国志战略版平民阵容推荐 - 零氪玩家实用搭配指南