java中Map子类简介说明
java之Map子类简介说明
map中常见的实现类HashMap 那么HashMap具有哪些特点呢?下文笔者将一一道来,如下所示 1.HashMap是map的实现类 2.允许多个null值和一个null键 3.HashMap中的元素没有顺序(跟添加的顺序无关) 4.HashMap不是线程安全例
public class MapDemo4 { public static void main(String[] args) { //定义一个map Map<String,String> map = new HashMap<String,String>(); //放入键值对 map.put("key1", "java265.com"); map.put("key2", "狗狗"); map.put("key3", "最爱的网站"); map.put("key4", "哈哈"); System.out.println(map); //输出{key3=最爱的网站, key1=java265.com, key2=狗狗, key4=哈哈} //由此看出hashMap添加的顺序是没有规律的,并且它不是线程安全的 //把map变成线程同步 map = Collections.synchronizedMap(map);
Map实现类TreeMap
Map实现类TreeMap TreeMap可以参考TreeSet,TreeMap可以支持Map的排序。 该映射根据其键的自然顺序进行排序 或 根据创建映射时提供的Comparator进行排序 具体取决于使用的构造方法 TreeMap也不是线程安全的 TreeMap的特点: 1.可以按着key来做排序 2.Key不能为null,key不能重复,值可以有多个null 3.不是线程安全的例
public class MapDemo5 { public static void main(String[] args) { //定义一个TreeMap Map<String,Person> map = new TreeMap<String,Person>(); //TreeMap是根据key的comparator来进行排序的 map.put("b", new Person(1, "张三", 23)); map.put("a", new Person(2, "李四", 23)); //TreeMap中key是不能为null的 //map.put(null, new Person(2, "李四", 23)); System.out.println(map); //输出{a=Person [id=2, name=李四, age=23], b=Person [id=1, name=张三, age=23]} //如果我们想按Person来进行排序就把Person和String的位置调换 //定义一个TreeMap Map<Person,String> map1 = new TreeMap<Person,String>(); //TreeMap是根据key的comparator来进行排序的 //注意:我们必须重写Person类的compareTo方法来进行排序 //而Person类必须实现Comparable接口,泛型是Person map1.put( new Person(5, "张三", 20),"b"); map1.put( new Person(2, "王五", 18),"a"); map1.put( new Person(4, "李四", 66),"h"); System.out.println(map1); //输出{Person [id=2, name=王五, age=18]=a, Person [id=4, name=李四, age=66]=h, Person[id=5, name=张三, age=20]=b} } }
Map实现类Hashtable
Hashtable特点 1.Hashtable是map的实现类 2.不允许任何null值和null键 3.HashTable中的元素没有顺序(跟添加的顺序无关) 4.Hashtable是线程安全的
HashMap和Hashtable区别 1.都是键值对集合 2.HashMap允许有一个null键和多个null值,HashTable不允许有null键和null值 3.HashMap不是线程安全的,Hashtable是线程安全的
public class MapDemo6 { public static void main(String[] args) { //定义一个Hashtable Map<String,String> map = new Hashtable<String,String>(); //放入键值对 map.put("key1", "java265.com"); map.put("key2", "牛牛"); map.put("key3", "最爱的网站"); map.put("key4", "阿里山"); //Hashtable key和值都不能为null //map.put(null, "阿里山"); //map.put("付宝义", null); System.out.println(map); //输出{key4=阿里山, key2=牛牛, key3=最爱的网站, key1=java265.com} } }
Map实现类LinkedHashMap
LinkedHashMap特点 1.LinkedHashMap是Map实现类 2.允许多个null值和一个null键 3.LinkedHashMap有顺序(添加顺序) 4.LinkedHashMap不是线程安全的例
public class MapDemo7 { public static void main(String[] args) { //定义一个LinkedHashMap Map<String,String> map = new LinkedHashMap<String,String>(); //放入键值对 map.put("key1", "java265.com"); map.put("key2", "牛牛"); map.put("key3", "最爱的网站"); map.put("key4", "阿里山"); System.out.println(map); //输出{key1=java265.com, key2=牛牛, key3=最爱的网站, key4=阿里山} } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。