一、概述
java中的map集合使用键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,也可以为空,但最多只能有一个key为空,它的主要实现类有HashMap、LinkedHashMap、TreeMap。
二、Map集合方法概要
三、HashMap、LinkedHashMap、TreeMap区别及用法
1、HashMap
特点:保存元素时先进后出、无序性;查询效率比较高;key-value可以为null,但最多只能为一个null;不支持线程同步,即可以有多个线程同时写HashMap,可能导致数据不一致,如果需要同步可以使用Collection的synchronizedMap方法使其同步。
示例:
Map map=new HashMap();
//使用put添加元素
map.put("name","张三");
map.put("sex","男");
map.put("age","12");
map.put("addres","深圳");
map.put("iPhone","13068706819");
//存放两个key-value为空的元素,打印时出现一个
map.put(null, null);
map.put(null, null);
//打印出来元素是先进后出排序
System.out.println("HashMap存放元素规则是先进后出:"+map);
效果:
特点:LinkedHashMap内部是双向链表结构,保存了元素插入的顺序,Iterator遍历元素时按照插入的顺序排列,支持线程同步。
代码:
//实例化LinkedHashMap对象,保存数据类型为String
Map map1=new LinkedHashMap();
//使用put添加元素
map1.put("name","张三");
map1.put("sex","男");
map1.put("age","12");
map1.put("addres","深圳");
map1.put("iPhone","13068706819");
map1.put(null, null);
打印元素排列方式:
System.out.println("元素按照插入的顺序排列:"+map1);
{name=张三, sex=男, age=12, addres=深圳, iPhone=13068706819, null=null}
3、TreeMap
特点:保存元素key-value不能为null,允许key-value重复;遍历元素时随机排列。
代码:
Map map2 = new TreeMap();
map2.put("name", "张三");
map2.put("sex", "男");
map2.put("age", "12");
map2.put("addres", "深圳");
map2.put("iPhone", "13068706819");
map2.put("iPhone", "13068706819");
打印:
System.out.println("元素随机排列"+map2);
{addres=深圳, age=12, iPhone=13068706819, name=张三, sex=男}