随笔分类 - 深入理解java集合框架
深入理解java集合框架
摘要:transient的作用及使用方法,官方解释为: 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而
阅读全文
摘要:Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素,我们可以看下它的成员方法 Iterable最早出现在JDK 1.5,开始只有iterator()一个抽象方法,需要子类来实现一个内部迭代器Iterator遍历元素.后两个方法是Java 8后新添加的,
阅读全文
摘要:HashTable是什么 HashTable跟HashMap一样,同样是链表散列的数据结构,从源码中我们可以看出,Hashtable 继承于Dictionary类,实现了Map, Cloneable,Serializable接口 Hashtable成员变量 Hashtable构造方法 Hashtab
阅读全文
摘要:linked构造函数 1、LinkedList(); 构造一个空列表的集合 2、
阅读全文
摘要:Arraylist集合 添加方法 1、add(E e) 向集合中添加元素 2、add(int index ,E e) 向集合的指定索引处添加元素 3、addAll(Collection< ? extends E> c) 添加集合 4、addAll(int index, Collection<? ex
阅读全文
摘要:ArrayList有三个构造方法 ArrayList有三个常量 1、private transient Object[] elementData (数组); 2、private int size (元素个数) 1、ArrayList(int initialCapacity); 构造一个初始容量的集合
阅读全文
摘要:深入理解HaspMap死循环问题 由于在公司项目中偶尔会遇到HashMap死循环造成CPU100%,重启后问题消失,隔一段时间又会反复出现。今天在这里来仔细剖析下多线程情况下HashMap所带来的问题: 1、多线程put操作后,get操作导致死循环。 2、多线程put非null元素后,get操作得到
阅读全文
摘要:日常开发中,保存一组数据使用的最多的就是 ArrayList, 其次就是 LinkedList 了。 我们知道 ArrayList 是以数组实现的,遍历时很快,但是插入、删除时都需要移动后面的元素,效率略差些 而LinkedList 是以链表实现的,插入、删除时只需要改变前后两个节点指针指向即可,省
阅读全文
摘要:ArrayList简介 ArrayLIst是动态数组,用MSDN的说法就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,可以灵活的设置数组的大小,要注意ArrayLIst并不是线程安全的。因此一般建议在单线程中使用Arraylist数组 ArrayLi
阅读全文
摘要:一、概念 TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解。 要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链表,Hash表等树这种结构又有什么优点。 1.二叉查询树、红黑树介绍、 1.数组,优点:(1)随机访
阅读全文
摘要:一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意
阅读全文
摘要:一、源码解析 LinkedList是一个继承于AbstractSequentialList的双向链表,它可以被当做堆栈、队列或双端队列进行操作 LinkedList实现了List接口,能够对它进行队列操作 LinkedList实现了Deque接口,即能将LinkedList当成双端队列使用 Link
阅读全文
摘要:一、HasnSet概述 Hashset实现set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序。特别是它不保证该顺序恒久不变。此类允许使用Null元素 一、HasnSet的实现 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap
阅读全文
摘要:一、ArrayList概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回
阅读全文

浙公网安备 33010602011771号