一、概述
java中的map集合使用键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,也可以为空,但最多只能有一个key为空,它的主要实现类有HashMap、LinkedHashMap、TreeMap。
二、Map集合方法概要
三、HashMap、LinkedHashMap、TreeMap区别及用法
1、HashMap
特点:保存元素时先进后出、无序性;查询效率比较高;key-value可以为null,但最多只能为一个null;不支持线程同步,即可以有多个线程同时写HashMap,可能导致数据不一致,如果需要同步可以使用Collection的synchronizedMap方法使其同步。
示例:
Map<String,String> map=new HashMap<String, String>(); //使用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<String,String> map1=new LinkedHashMap<String,String>(); //使用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<String, String> map2 = new TreeMap<String, String>(); 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=男}