随笔 - 1162
文章 - 0
评论 - 16
阅读 -
59万
随笔分类 - Java SE
Java 集合:(三十一)Collections 工具类
摘要:一、Collections 工具类 1、Collections 是一个操作 Set、List 和 Map 等集合的工具类。 2、Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法 3、 4、 5、 二、Co
阅读全文
Java 集合:(三十) WeakHashMap实现类
摘要:一、WeakHashMap 概述 1、WeakHashMap的功能实现上面和HashMap等非常的相似,无非也是用来hash表+单向链表的结构作为底层数据存储, 2、WeakHashMap的特点是以一种弱引用的关系存储数据,存储对象长期不用,可以被垃圾回收。 3、 二、WeakHashMap 类结构
阅读全文
Java 集合:(二十九) TreeMap 实现类
摘要:一、TreeMap 类概述 1、TreeMap存储 Key-Value 对时,要求key必须是由同一个类创建的对象,需要根据 key-value 对进行排序,TreeMap 可以保证所有的 Key-Value 对处于有序状态。 2、TreeSet底层使用红黑树结构存储数据 3、TreeMap 的 K
阅读全文
Java 集合:(二十八) SortedMap 接口
摘要:一、SortedMap 接口 1、SortedMap 是 Map 系列中支持排序的接口,其常见的实现类为 TreeMap; 2、 3、 4、 二、SortedMap 的结构与签名 1、SortedMap 的结构 2、接口签名 public interface SortedMap<K,V> exten
阅读全文
Java 集合:(二十七)Properties实现类
摘要:一、Properties 类概述 1、Properties 类是 Hashtable 的子类,该对象用于处理属性文件; 2、由于属性文件里的 key、value 都是字符串类型,所以 Properties 里的 key和 value 都是字符串类型; 3、存取数据时,建议使用setProperty(
阅读全文
Java 集合:(二十六) Hashtable 实现类
摘要:一、Hashtable 概述 1、Hashtable是个古老的 Map 实现类,JDK1.0就提供了。不同于HashMap,Hashtable是线程安全的,效率较低。 2、Hashtable实现原理和HashMap相同,功能相同。底层都使用哈希表结构,查询速度快,很多情况下可以互用。 3、与Hash
阅读全文
Java 集合:(二十四)HashMap 万万没想到系列——HashMap实现底层细节之keySet,values,entrySet的一个底层实现细节
摘要:一、问题描述 最近看HashMap源码的时候发现了一个没思考过的问题,在这次之前可以说是完全没有思考过,所以一开始对这个点有疑问的时候,也没有想到居然有这么个语法细节存在,弄得我百思不得其解,直到自己动手做实验改写了代码才完全明白。 HashMap里面保存的数据最底层是一个Entry型的数组,这个E
阅读全文
Java 集合:(二十三) LinkedHashMap 实现类
摘要:一、LinkedHashMap 类概述 1、LinkedHashMap 是 HashMap 的子类。 2、在HashMap存储结构的基础上,使用了一对双向链表来记录添加元素的顺序。 3、与LinkedHashSet类似,LinkedHashMap 可以维护 Map 的迭代顺序:迭代顺序与 Key-V
阅读全文
Java 集合:(二十二) HashMap 常见面试题
摘要:一、HashMap 的数据结构 1、为什么用HashMap? (1)HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射; (2)HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改; (3)HashMap是非synch
阅读全文
Java 集合:(二十一) HashMap 源码剖析(JDK8)
摘要:一、HashMap(JDK8)中成员变量与方法列表 1、成员变量 1 (1)标识该类的 序列化唯一ID 2 private static final long serialVersionUID = 362498820763181265L; 3 4 (2)默认初始化容量 16(必须为2的次幂) 5 /
阅读全文
Java 集合:(二十) HashMap 源码剖析(JDK7)
摘要:一、HashMap 中的成员变量 成员变量说明: 1 ① 默认初始化容量 16(必须为2的次幂) 2 /** 3 * The default initial capacity - MUST be a power of two. 4 */ 5 static final int DEFAULT_INIT
阅读全文
Java 集合:(十九) HashMap 实现类
摘要:一、HashMap 概述 1、HashMap是 Map 接口使用频率最高的实现类; 2、HashMap 允许使用 null 键和 null 值,与HashSet一样,不保证映射的顺序; 3、所有的 key 构成的集合是Set:无序的、不可重复的。所以,key所在的类要重写:equals()和hash
阅读全文
Java 集合:(十八) Map接口
摘要:一、Map 接口概述 1、Map 与 Collection 并列存在。Collection是单列的容器,Map是双列的容器,Map用于保存具有映射关系的数据:key-value; 2、Map 是一个接口,它表示一种 "键-值(key-value)" 映射的对象(Entry),其中键是不重复的(值可以
阅读全文
Java 集合:(十七) Queue 常用接口:BlockingQueue 子接口
摘要:一、BlockingQueue 接口概述 1、 2、 3、 二、BlockingQueue 结构 1、BlockingQueue 接口声明 1 public interface BlockingQueue<E> extends Queue<E> {} 2、BlockingQueue 的继承结构及其常
阅读全文
Java 集合:(十六) Queue 常用接口:Deque 子接口
摘要:一、Deque 子接口概述 1、Deque 接口继承自 Queue 接口,表示双端队列(Double-ended queue),同时具备 【队列】和【栈】的性质。 2、双端队列即意味着此队列可以在头尾都具有入队和出队的功能。 3、Deque 接口继承自 Queue 接口,可以将 Deque 理解为【
阅读全文
Java 集合:(十五) Queue 子接口
摘要:一、Queue接口概述 1、Queue 是一个接口,Queue 接口定义的是一个队列,它包含队列的基本操作:入队(enqueue)和出队(dequeue)。 2、队列是一种先进先出(后进后出)的数据结构,类似生活中的排队一样。 3、 二、Queue 结构 1、Queue 接口的声明 1 public
阅读全文
Java 集合:(番外篇一) ArrayList线程不安全性
摘要:一、ArrayList 线程不安全性 ArrayList 线程不安全案例: 1 public class TestArrayList { 2 private static List<Integer> list = new ArrayList<>(); 3 4 public static void m
阅读全文
Java 集合:(十四) Set实现类:TreeSet
摘要:一、TreeSet 概述 1、TreeSet 是 SortedSet 接口的实现类, TreeSet 可以确保集合元素处于排序状态。 2、TreeSet顾名思义他内部维护的是一个TreeMap,底层是红黑二叉树,他使得集合内都是有序的序列。 3、Tree 可以按照添加对象的指定属性,进行排序,所以向
阅读全文
Java 集合:(十三) Set实现类:LinkedHashSet
摘要:一、LinkedHashSet 概述 (1)LinkedHashSet 是 HashSet 的子类 (2)LinkedHashSet 根据元素的 hashCode 值来决定元素的存储位置,但它同时使用双向链表维护元素的次序,这使得元素看起来是以插入顺序保存的。 (3)LinkedHashSet作为H
阅读全文