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=阿里山}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


