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