java中Map子类简介说明

欣喜 Java经验 发布时间:2025-01-26 09:36:13 阅读数:8950 1

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=阿里山}
    } 
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202501/17378567678237.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者