Map集合

Map集合

概述

  • 将键映射到值的对象
  • 一个映射不能包含重复的键
  • 每个键最多只能映射到一个值

Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的。可以把这个理解为:夫妻对
Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。可以把这个理解为:"光棍"
注意:
Map集合的数据结构值针对键有效,跟值无关
Collection集合的数据结构是针对元素有效

下面我们来了解Map集合的功能概述

添加功能

V put(K key,V value):添加元素。

删除功能

 void clear():移除所有的键值对元素
 V remove(Object key):根据键删除键值对元素,并把值返回

判断功能

boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空

长度功能

 int size():返回集合中的键值对的对数

获取功能

 V get(Object key):根据键获取值
 Set keySet():获取集合中所有键的集合
 Collection values():获取集合中所有值的集合
 Set< Map.Entry< K,V>> entrySet():返回的是键值对对象的集合

Map子类

HashMap

HashMap类概述

键是哈希表结构,可以保证键的唯一性

常用案例

 HashMap< String,String>
 HashMap< Integer,String>
 HashMap< String,Student>
 HashMap< Student,String>

 上面的也不是非要是学生对象,可以是你需求的对象

LinkedHashMap

概述

  • Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。
  • 由哈希表保证键的唯一性,不可重复
  • 由链表保证键盘的有序(存储和取出的顺序一致)

TreeMap

概述
键是红黑树结构,可以保证键的排序和唯一性

在输出结果中:HashMap会打印出{null=world, java=null, android=hello}
而在Hashtable中会报错
所以我们就能得出他们的区别

HashMap:线程不安全,效率高。允许null键和null值
Hashtable:线程安全,效率低。不允许null键和null值

Collections类

Collections类概述
针对集合进行操作的工具类,都是静态方法。

Collection和Collections的区别

Collection:是单列集合的顶层接口,有子接口List和Set。
Collections:是针对集合操作的工具类,有对集合进行排序和二分查找的方法

Collections成员方法

 public static < T> void sort(List list):排序 默认情况下是自然顺序。
 public static < T> int binarySearch(List< ?> list,T key):二分查找
 public static < T> T max(Collection< ?> coll):最大值
 public static void reverse(List< ?> list):反转
 public static void shuffle(List< ?> list):随机置换
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容