ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java基础第二十四天总结——集合

2019-12-16 12:07:13  阅读:250  来源: 互联网

标签:Map Java HashMap Object List value 第二十四 key 集合


目录:

一、Map接口

二、Collection工具类

/*---------------分割线---------------------*/

一、Map接口

 

 

 Map中的key用Set来存放,不可重复。作为一个Map对象所对应的类,需重写hashCode和equals方法。

HashMap是Map接口使用频率最高的实现类。

 

 

 

 添加、删除、修改操作:  Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中  void putAll(Map m):将m中的所有key-value对存放到当前map中  Object remove(Object key):移除指定key的key-value对,并返回value  void clear():清空当前map中的所有数据  元素查询的操作:  Object get(Object key):获取指定key对应的value  boolean containsKey(Object key):是否包含指定的key  boolean containsValue(Object value):是否包含指定的value  int size():返回map中key-value对的个数  boolean isEmpty():判断当前map是否为空  boolean equals(Object obj):判断当前map和参数对象obj是否相等  元视图操作的方法:  Set keySet():返回所有key构成的Set集合  Collection values():返回所有value构成的Collection集合  Set entrySet():返回所有key-value对构成的Set集合

 

Map实现类之一:HashMap

允许使用null键和null值

所有的value构成的集合是Collection:无序的,可重复的,所以vlaue所在的类要重写equals方法

一个key-value构成一个entry

HashMap判断两个key相等的标准是:两个key通过equals方法返回true,hashCode值也相等。

HashMap判断两个value相等的标准是:两个value通过,equals方法返回true。

 

 

 

 

 

 

HashMap源码中的重要常量

DEFAULT_INITIAL_CAPACITY : HashMap的默认容量,16 MAXIMUM_CAPACITY : HashMap的最大支持容量,2^30 DEFAULT_LOAD_FACTOR:HashMap的默认加载因子 TREEIFY_THRESHOLD:Bucket中链表长度大于该默认值,转化为红黑树 UNTREEIFY_THRESHOLD:Bucket中红黑树存储的Node小于该默认值,转化为链表 MIN_TREEIFY_CAPACITY:桶中的Node被树化时最小的hash表容量。(当桶中Node的 数量大到需要变红黑树时,若hash表容量小于MIN_TREEIFY_CAPACITY时,此时应执行 resize扩容操作这个MIN_TREEIFY_CAPACITY的值至少是TREEIFY_THRESHOLD的4 倍。) table:存储元素的数组,总是2的n次幂 entrySet:存储具体元素的集 size:HashMap中存储的键值对的数量 modCount:HashMap扩容和结构改变的次数。 threshold:扩容的临界值,=容量*填充因子 loadFactor:填充因子

 

HashMap内部存储结构是数组和链表的结合

 

Map实现类之二:LinkedHashMap

在HashMap存储结构的基础上,使用了一对双向链表来记录添加元素的顺序。

与LinkedHashSet类似,LinkedHashMap可以维护Map的迭代顺序:迭代顺序与Key-Value对的插入顺序一致

 

Map实现类之三:TreeMap

TreeMap存储 Key-Value 对时,需要根据 key-value 对进行排序。 TreeMap 可以保证所有的 Key-Value 对处于有序状态。 TreeSet底层使用红黑树结构存储数据 TreeMap 的 Key 的排序: 自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有 的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException 定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口 TreeMap判断两个key相等的标准:两个key通过compareTo()方法或 者compare()方法返回0

 

Map实现类之四:Hashtable

 Hashtable是个古老的 Map 实现类,JDK1.0就提供了。不同于HashMap,

Hashtable是线程安全的。  Hashtable实现原理和HashMap相同,功能相同。底层都使用哈希表结构,查询 速度快,很多情况下可以互用。  与HashMap不同,Hashtable 不允许使用 null 作为 key 和 value  与HashMap一样,Hashtable 也不能保证其中 Key-Value 对的顺序  Hashtable判断两个key相等、两个value相等的标准,与HashMap一致。

 

Map实现类之五:Properties

Properties 类是 Hashtable 的子类,该对象用于处理属性文件 由于属性文件里的 key、value 都是字符串类型,所以 Properties 里的 key 和 value 都是字符串类型 存取数据时,建议使用setProperty(String key,String value)方法和 getProperty(String key)方法

 

二、Collections工具类

Collections 是一个操作 Set、List 和 Map 等集合的工具类 排序操作:(均为static方法) reverse(List):反转 List 中元素的顺序 shuffle(List):对 List 集合元素进行随机排序 sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序 sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序 swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换

 

Collections常用方法

查找、替换 Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素 Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素 Object min(Collection) Object min(Collection,Comparator) int frequency(Collection,Object):返回指定集合中指定元素的出现次数 void copy(List dest,List src):将src中的内容复制到dest中 boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List 对象的所有旧值

 

Collection常用方法:同步控制

Collections 类中提供了多个 synchronizedXxx() 方法,该方法可使将指定集 合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全 问题。

 

补充:

Enumeration 接口是 Iterator 迭代器的 “古老版本”

标签:Map,Java,HashMap,Object,List,value,第二十四,key,集合
来源: https://www.cnblogs.com/zhoutie170821/p/12048359.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有