您的位置:首页 > 编程语言 > Java开发

java中HashMap的遍历

2015-06-22 02:09 537 查看
【遍历方法一】

[java] view
plaincopy

for(Map.Entry<key_type , value_type> entry : hashmap.entrySet()){

System.out.println("Key="+entry.getKey()+"---->value="+entry.getValue().toString())

}

for each map.entrySet()

Java

12345Map<String, String> map = new HashMap<String, String>();for (Entry<String, String> entry : map.entrySet()) { entry.getKey(); entry.getValue();}
【遍历方法二:用keySet遍历】[c-sharp] view plaincopyIterator it=hashmap.keySet().iterator();//这是取得键对象
while(it.hasNext())
{
System.out.println( "it.Next数据的值是: "+get(it.next())); //获得键所对应的值。
}

for each map.keySet(),再调用get获取Java

1

2

3

4

Map<String,
String>
map
=
new
HashMap<String,
String>();

for
(String
key
:
map.keySet())
{

map.get(key);

}

【遍历方法三:用entrySet遍历】

[java] view
plaincopy

Iterator i = hasmap.entrySet().iterator();

while(i.hasNext()){

Entry entry=(Entry)it.next();

Object key=entry.getKey();

Object value=entry.getValue();

}

使用HashMap的匿名内部类Entry遍历比使用keySet()效率要高很多,使用forEach循环时要注意不要在循环的过程中改变键值对的任何一方的值,否则出现哈希表的值没有随着键值的改变而改变,到时候在删除的时候会出现问题。

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

a. HashMap的循环,如果既需要key也需要value,直接用

Java

12345Map<String, String> map = new HashMap<String, String>();for (Entry<String, String> entry : map.entrySet()) { entry.getKey(); entry.getValue();}
即可,foreach简洁易懂。b. 如果只是遍历key而无需value的话,可以直接用Java

1

2

3

4

Map<String,
String>
map
=
new
HashMap<String,
String>();

for
(String
key
:
map.keySet())
{

//
key process

}

// JDK1.4中

// 遍历方法一 hashmap entrySet() 遍历

System.out.println("方法一");

Iterator it = tempMap.entrySet().iterator();

while (it.hasNext()) {

Map.Entry entry = (Map.Entry) it.next();

Object key = entry.getKey();

Object value = entry.getValue();

System.out.println("key=" + key + " value=" + value);

}

System.out.println("");

// JDK1.5中,应用新特性For-Each循环

// 遍历方法二

System.out.println("方法二");

for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {

String key = entry.getKey().toString();

String value = entry.getValue().toString();

System.out.println("key=" + key + " value=" + value);

}

System.out.println("");

// 遍历方法三 hashmap keySet() 遍历

System.out.println("方法三");

for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {

Object obj = i.next();

System.out.println(obj);// 循环输出key

System.out.println("key=" + obj + " value=" + tempMap.get(obj));

}

for (Iterator i = tempMap.values().iterator(); i.hasNext();) {

Object obj = i.next();

System.out.println(obj);// 循环输出value

}

System.out.println("");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: