Java集合II,map

一.概述

  map保存的是具有映射关系的数据,可以说存着两组数据:key和value,是一一对应的;

  他们都可以使用任何引用类型的数据,其中key不能重复,通过指定的key就可以获取到对应的value;

  map不继承collection接口。

二.几种map类

1.hashmap和hashtable

  线程安全 空值 性能 顺序
hashmap 同步的,安全 只能有一个key为空,可以有多个value为空 最好 键值对顺序不与插入顺序一致
hashtable 异步的,不安全 不允许有空值 最差

2.treemap

  可实现sortmap接口,基于红黑树对所有的key进行排序,key以treeset形式存储;

  支持自然排序和自定义排序。

【代码.jpg】

3.linkedhashmap

  使用双向链表来维护键值对的次序,迭代顺序与插入顺序保持一致;

  需要维护元素的插入顺序,所以性能略低于hashmap,但在迭代访问元素时有很好的性能。

4.identityhashmap

  与hashmap基本类似,但identityhashmap使用==来比较key是否相等,而hashmap使用equals方法

==

  如果作用于基本数据类型的变量,则直接比较其存储的“值”是否相等;

  如果作用于引用类型的变量,则比较的是所指对象的地址。

   equals

  不能作用于基本数据类型的变量;

  默认比较的是引用类型的变量所指对象的地址;

  若对equals方法进行了重写,如:String、Date等类,比较的是所指对象的内容。 

5.weakhashmap

  weakhashmap中的每个key对象保存了实际对象的弱引用;

  当回收了该key所对应的实际对象后,它会自动删除该key所对应的键值对。

 

posted @ 2021-08-10 17:31  二十三年蝉、  阅读(61)  评论(0)    收藏  举报