Map,HashMap,TreeMap

一、HashMap,TreeMap差别

1.两种常规Map性能 
HashMap:适用于在Map中插入、删除和定位元素。 
Treemap:适用于按自然顺序或自定义顺序遍历键(key)。 

2.总结 
HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。 

二、Map 遍历 

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class TestMap {

public static void main(String[] args) {

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

map.put("1", "Jack"); // 存储键和值
map.put("2", "Rose");
map.put("3", "Lucy");

System.out.println(map.size());

// 第一种:

System.out.println("第一种:通过Map.keySet遍历key和value:");

for (Integer in : map.keySet()) {  //map.keySet()返回的是所有key的值

String str = map.get(in);     //得到每个key多对用value的值

System.out.println(in + " " + str);

}

// 第二种:

System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");

Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();

while (it.hasNext()) {

Map.Entry<Integer, String> entry = it.next();

System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

}

// 第三种:推荐,尤其是容量大时,速度最快,效率最高

System.out.println("第三种:通过Map.entrySet遍历key和value");

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

System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());

}

/* 另一种写法

Set entrySet = map.entrySet();
Iterator it = entrySet.iterator(); // 获取Iterator对象
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) (it.next());// 获取集合中键值对映射关系
Object key = entry.getKey(); // 获取Entry中的键
Object value = entry.getValue(); // 获取Entry中的值
System.out.println(key + ":" + value);
}

*/

// 第四种:

System.out.println("第四种:通过Map.values()遍历所有的value,但不能遍历key");

for (String v : map.values()) {

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

}

}

}

 

posted @ 2017-03-15 23:40  Rainyn  阅读(219)  评论(0编辑  收藏  举报