随笔分类 - Java集合
摘要:LinkedList的定义 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable{} public clas
阅读全文
摘要:Vector集合是 jdk1.0 版本就提供的集合类,它的所有操作集合的方法,都进行了加锁(就是对方法使用synchronized修饰)。这样就可以防止多线程同时修改集合。 因为是方法级synchronized锁,那么Vector集合的效率就不高。而且使用了Vector集合并不一定在多线程情况下就没
阅读全文
摘要:Map接口 Map集合是用键值对作为存储元素的集合,所以它可以通过key值来操作集合中的键值对元素。 public interface Map<K,V> {} 可以注意到Map接口是一个顶层接口,与Collection没有任何联系,甚至它都没有继承Iterable接口,说明Map是不可迭代的。但是M
阅读全文
摘要:HashSet的源码非常简单,它就是借用HashMap来实现相应的功能。 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable 可以看出它继承自Abstrac
阅读全文
摘要:前言知识 哈希化 用位运算实现哈希化 我们知道HashMap是基于哈希表实现的,而且是链地址法实现的哈希表(即数组加链表的形式)。 哈希表的关键是哈希化,就是将很大的哈希值转化变成一定区间范围内的值,我们能够马上想到的就是采用取余%操作来实现哈希化的。但是我们知道取余%是非常耗费性能的,尽量不要使用
阅读全文
摘要:LinkedList的定义 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable{} public clas
阅读全文
摘要:ArrayList定义及功能 ArrayList的定义: public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{} Arr
阅读全文
摘要:Collection接口 public interface Collection<E> extends Iterable<E> {} 它继承了Iterable接口,那么这个接口有什么用呢? Iterable接口表示可迭代接口,它会返回一个迭代器Iterator。通过这个迭代器,我们可以遍历集合中元素
阅读全文
摘要:接口List public interface List<E> extends Collection<E> {} List接口继承Collection接口,它提供一种索引概念,就像数组下标一样,让我们可以快速找到对应索引位置的元素,也可以在索引位置添加,删除,替换对应元素。 对比Collection
阅读全文
摘要:数组与集合的区别 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下: 数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。 数组固定无法动态改变,集合类容量动态
阅读全文