版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ldb987/article/details/84569828
map类型对比
HashMap:遍历时,获取数据的顺序完全随机;不支持线程同步;
LinkedHashMap:可以保存记录的插入顺序,遍历输出的顺序和插入的顺序一致;
TreeMap:遍历时,保存的记录可以根据键自动排序;
HashTable:支持线程同步;不允许记录的键或者值为空;
public class mapTest {
public static void main(String args[]){
System.out.println("*************************LinkedHashMap*************");
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(7, "阿里");
map.put(9, "腾讯");
map.put(6,"百度");
for (Iterator it = map.keySet().iterator(); it.hasNext();)
{
Object key = it.next();
System.out.println( key+"="+ map.get(key));
}
System.out.println("*************************HashMap*************");
Map<String,String> map1 = new HashMap<String, String>();
map1.put("7", "阿里");
map1.put("9", "腾讯");
map1.put("6", "百度");
for(Iterator it1 = map1.keySet().iterator();it1.hasNext();){
Object key = it1.next();
System.out.println(key+"="+map1.get(key));
}
System.out.println("*************************TreeMap*************");
Map<Integer,String> map2 = new TreeMap<Integer, String>();
map2.put(7, "阿里");
map2.put(9, "腾讯");
map2.put(6, "百度");
for(Iterator it2 = map2.keySet().iterator();it2.hasNext();){
Object key = it2.next();
System.out.println(key+"="+map2.get(key));
}
}
}
运行结果如下:
HashMap的遍历方法
public static void main(String args[]){
System.out.println("*************************LinkedHashMap*************");
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(7, "阿里");
map.put(9, "腾讯");
map.put(6,"百度");
//遍历map
//方法1.1,keySet遍历,同时获取key和value:6=百度
for (Iterator it = map.keySet().iterator(); it.hasNext();)
{
Object key = it.next();
System.out.println( key+"="+ map.get(key));
}
//方法1.2,keySet遍历,只需要map的key或者value
// //KeySet 获取key
// for (Integer key : map.keySet()) {
// System.out.println(key);
// }
// // values 获取value
// for (String value : map.values()) {
// System.out.println(value);
// }
//方法2,Iterator遍历,可删除元素:Key: 7; Value: 阿里
// Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
// while (it.hasNext()) {
// Map.Entry<Integer, String> e2 = it.next();
// // e2.remove(); 删除元素
// System.out.println("Key: " + e2.getKey() + "; Value: " + e2.getValue());
// }
//方法3,entrySet遍历, 同时获取key,value,推荐使用
// for (Map.Entry<Integer, String> entry : map.entrySet()) {
// System.out.println(entry.getKey() + ":" + entry.getValue());
// }
//方法4,Lambda遍历,性能低于entrySet
// map.forEach((key, value) -> {
// System.out.println(key + ":" + value);
// });
}