集合
Fly_Fly_Zhang
初学java
展开
-
集合-HashSet源码详解
特点:如果对HashMap理解不深,请先查阅 HashMap源码详解 ,否则会对本片博客理解有一定困难;底层数据结构:HashSet底层封装的是HashMap,所以元素添加会放到HashMap的key中,value值使用new Object对象作为value;所以HashSet和HashMap的所具有的特点是类似的; 数据不能重复; 可以存储null值; 数据不能保证插入有序;...原创 2019-02-28 15:16:18 · 818 阅读 · 0 评论 -
集合-TreeMap详解和TreeSet详解以及两者的区别
TreeMap底层数据结构:TreeMap底层数据结构是红黑树;红黑树特性:每个节点都只能是红色或者黑色;根节点是黑色;每个叶节点(NLL节点,空节点)是黑色的;如果一个节点是红色的,那么它的两个子节点都是黑的。也就是说在一条路径上不能出现相邻的两个红色节点;从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点;特点: TreeMap是非线程安全的 :但是可以用如下如下方...原创 2019-03-04 15:38:46 · 2627 阅读 · 0 评论 -
集合-PriorityQueue源码详解
特点: PriorityQueue队列里元素不能为null; 存储元素是可以重复的; PriorityQueue存储自定义类时,自定义类需要实现Comparable接口,否则会抛出异常;或者在构建PriorityQueue时,实现Comparator;Comparator和Comparable的区别: 方法不同:Comparator需要实现的是compare()方法;Comp...原创 2019-03-06 21:42:25 · 359 阅读 · 0 评论 -
集合-LinkedHashMap源码详解(特有方法解析)以及HashMap与LinkedHashMap的不同
特点:底层数据结构:数组加链表用来存储数据; header双向链表用来实现数据插入有序或者访问有序;继承关系:public class LinkedHashMap<K,V> extends HashMap<K,V> //继承了HashMap implements Map<K,V>//实现了Map接口{原创 2019-02-27 12:45:51 · 1104 阅读 · 0 评论 -
集合-LinkedHashSet详解以及LinkedHashSet和LinkedHashMap和HashSet的区别
特点:继承关系:public class LinkedHashSet<E> extends HashSet<E> //继承了HashSet implements Set<E>, //实现了set接口 Cloneable, //可以进行clone java.io.Serializable {原创 2019-03-03 14:45:51 · 4041 阅读 · 0 评论 -
集合-WeakHashMap详解以及四种引用
特点:WeakHashMap添加的元素随着时间推移会减少;java四种引用: 强引用:一个对象如果只有强引用,那么垃圾回收器绝不会回收它,即使在内存不足的情况下,JVM宁愿抛出内存不足的异常都不会回收该对象; String s=new String(""); //new的对象为强引用 s= null; //强引用置为空会回收该对象; 软引用: 如果一个对象只有软引用,那么在内存...原创 2019-03-03 14:05:45 · 1174 阅读 · 0 评论 -
集合- Iterator(迭代器)源码详解以及自定义迭代器实现
迭代器:是一种设计模式,提供了一种方法,来对集合,容器进行遍历的方式,不需要关注底层数据结构和数据类型,来达到底层和上层遍历解耦的目的。集合如何获得一个迭代器:集合要具有iterator 方法需要实现iterable接口,要自定义一个迭代器内部类,类需要实现Iterator接口; iterator方法: public Iterator<E> iterator() { ...原创 2019-02-19 17:42:57 · 1018 阅读 · 0 评论 -
集合-ArrayList源码分析以及自定义ArrayList集合类实现
ArrayList特点: 重复性:数据可以重复 null值:可以有null值存在 有序性:能保证数据插入有序常用方法介绍: int size(): 集合中存储元素的个数; boolean isEmpty():判断当前元素是否为空,返回值为boolean类型; boolean contains(Object o): 判断当前集合是否包含Object对象; Iterator ...原创 2019-02-21 17:27:12 · 363 阅读 · 0 评论 -
集合 - LinkedList自定义类实现以及LinkedList自定义迭代器(Iterator)实现
Iterator迭代器实现原理参照此篇博客请点击package collection;import java.util.Iterator;/** * @Created with IntelliJ IDEA * @Description: * @Package: collection * @author: FLy-Fly-Zhang * @Date: 2019/2/20 * @Ti...原创 2019-02-22 14:31:30 · 720 阅读 · 0 评论 -
集合-HashMap源码详解(增删改查)
底层数据结构:HashMap底层的实现是数组+链表实现:数组中存储的是一个个entry实体,hash到同一个索引位置的数据通过链表链接起来;基本属性: transient:和序列化相关的关键字static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16//哈希表中数组默认初始值大小为16static fin...原创 2019-02-24 12:54:51 · 1103 阅读 · 0 评论 -
集合-HashTable源码详解(增删改查)以及HashMap与HashTable的异同点
特点: 底层数据结构:链表加数组; null值:key,value均不能为null; key重复性:key不能重复; 有序性:不能保证插入有序; 是线程安全的增长方式 :原数组长度二倍+1的方式增长继承关系:public class Hashtable<K,V> extends Dictionary<K,V&am原创 2019-02-26 12:52:29 · 553 阅读 · 0 评论 -
集合-集合框架思维导图以及集合之间的联系
集合框架关系图:集合框架图中最顶层的三个接口:Iterator : 向下实现了LinkIterator;collection: 下面有三个子接口:List,set,Queue;Map: 下面有两个直接子接口,AbstractMap和SortMap;集合框架主要实现类介绍:List接口:AbstractList接口实现类:ArrayList源码详解LinkedList源码详解...原创 2019-03-21 16:19:14 · 3020 阅读 · 0 评论