Java 集合框架
青藤光年
这个作者很懒,什么都没留下…
展开
-
Java 集合框架系列一:JDK 1.8 Collection 和 AbstractCollection 详解
Collection 继承关系public interface Collection<E> extends Iterable<E> {} Collection 是在 JDK 1.2 提供的接口,它继承了 Iterable 接口,说明 Collection 的所有实现类都支持 for-each 循环。类文档解读老规矩,先通过 Collection 的类文档了解一下能得到哪些信息。Collection 是 Java 集合框架的根接口,集合是指用来存储一组对象的容器原创 2020-09-08 17:42:26 · 360 阅读 · 0 评论 -
Java 集合框架系列十七:JDK 1.8 Collections 详解
Collections 是在 JDK 1.2 时提供的用来操作集合的工具类,此类只包含对集合操作的静态方法。Collections APIpublic class Collections { // 确保不可实例化 private Collections() { } /** * 这些属性是 Collections 的调优参数。通常 Collections 的许多算法都有两个实现, * 一个适用于随机访问,另一个适合顺序访问。通常随机访问在列表数原创 2020-09-08 21:30:59 · 1004 阅读 · 0 评论 -
Java 集合框架系列十一:JDK 1.8 TreeSet 详解
TreeSet 继承关系类文档解读老规矩,先通过 TreeSet 的类文档了解一下能得到哪些信息。TreeSet 是 JDK 1.2 提供的基于 TreeMap 的 NavigableSet 实现。TreeSet 支持元素的自然排序和按照在创建时指定的 Comparator 比较器进行排序。TreeSet 的基本操作(add、remove 和 contains)的时间复杂度是 log(n) 。TreeSet 是非线程安全的。TreeSet 的迭代器是 fail-fast 策略的。Tre原创 2020-09-08 19:08:47 · 624 阅读 · 0 评论 -
Java 集合框架系列十:JDK 1.8 Comparable 和 Comparator 详解
Comparator 和 Comparable 两者都属于集合框架的一部分,都是在 JDK 1.2 时提供的用来在对象之间进行比较的接口,但两者又有些许的不同。先来看一下 Comparable 的例子,定义实体类 Student,实现 Comparable,重写 compareTo 方法:public class Student implements Comparable<Student> { private String name; private Integer age;原创 2020-09-08 18:56:26 · 872 阅读 · 0 评论 -
Java 集合框架系列九:JDK 1.8 SortedSet 和 NavigableSet 详解
SortedSet 继承关系SortedSet 直接继承了 Set,是 JDK 1.2 提供的接口,SortedSet 意为按照对象的比较方法对元素排序,而不是元素的插入顺序,插入顺序用 LinkedHashSet 来保存即可,SortedSet 是以自然排序或者按照 Comparator comparator() 比较器排序。SortedSet 已知实现类有:ConcurrentSkipListSet 和 TreeSet。SortedSet 要求插入到 SortedSet 中的元素必须实现 Comp原创 2020-09-08 18:43:01 · 546 阅读 · 1 评论 -
Java 集合框架系列七:JDK 1.8 Set 和 AbstractSet 详解
Set 继承关系Set 直接继承了 Collection 接口,也是在 JDK 1.2 提供的。Set的结构及实现都和Map保持高度一致,通过后面的源码分析你就可以看出来 Set 内部大量使用了 Map 的实现作为数据存储。类文档解读老规矩,先通过 Set 的类文档了解一下能得到哪些信息。Set 是一个不允许重复的集合,Set 是数学上的集合的抽象,更正式地说,集合不包含一对元素 e1 和 e2 满足 e1.equals(e2)。Set 最多只能包含一个 null 元素或者不允许 null 元原创 2020-09-08 18:04:14 · 634 阅读 · 0 评论 -
Java 集合框架系列六:JDK 1.8 Vector 详解
Vector 继承关系Vector 是在 JDK 1.0 就提供的类,在 JDK 1.2 对 Vector 进行改造后,Vector 和 ArrayList 都继承实现了相同的类和接口。public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable {}Vector 实现了 RandomAcc原创 2020-09-08 17:47:07 · 428 阅读 · 0 评论 -
Java 集合框架系列五:JDK 1.8 LinkedList 详解
LinkedList 继承关系LinkedList 也是 JDK 1.2 就提供的集合类,它继承了 AbstractSequentialList 抽象类,并实现了 Deque、List、Cloneable、Serializable 接口。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, jav原创 2020-09-08 17:46:40 · 324 阅读 · 0 评论 -
Java 集合框架系列四:JDK 1.8 ArrayList 详解
ArrayList 继承关系ArrayList 是 JDK 1.2 提供的 List 实现类,继承了 AbstractList 抽象类,实现了 Cloneable、Serializable、RandomAccess、List 接口。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializ原创 2020-09-08 17:45:52 · 384 阅读 · 0 评论 -
Java 集合框架系列三:JDK 1.8 List 和 AbstractList 和 AbstractSequentialList 详解
List 继承关系List 是在 JDK 1.2 提供的接口,继承了 Collection 接口,List 代表有序集合,List 可以精确控制列表中每个元素的插入位置,可以通过索引访问元素,和 Set 不同得是 List 允许插入重复的元素,而且 List 的实现类如果允许插入 null 元素,那么可以存在多个 null 元素。List 在 Collection 接口的基础上添加了一系列针对其特性的方法,如通过索引操作元素。有些 List 的实现可能对包含的元素有限制。例如有些实现禁止 null 元原创 2020-09-08 17:45:10 · 267 阅读 · 0 评论 -
Java 集合框架系列二:JDK 1.8 Iterable 和 Iterator、Enumerator 和 ListIterator 详解
Iterable当我们想要遍历集合时,Java 为我们提供了多种选择,通常有以下三种写法:写法 1:for 循环 for (int i = 0, len = strings.size(); i < len; i++) { System.out.println(strings.get(i)); }写法 2:foreach 循环 for (String var : strings) { System.out.println(var);原创 2020-09-08 17:43:53 · 360 阅读 · 0 评论 -
Java 集合框架系列十四:JDK 1.8 LinkedHashMap 详解
LinkedHashMap原创 2020-09-08 19:23:44 · 504 阅读 · 0 评论 -
Java 集合框架系列十五:JDK 1.8 Hashtable 详解
Hashtable 继承关系Hashtable 是 JDK 1.0 提供的类,继承了 Dictionary 类,Dictionary 类现在已经标记为过时了,Hashtable 实现了 Map 接口,这是在 JDK 1.2 时改动的,还实现了 Cloneable 和 Serializable 接口,说明 Hashtable 支持浅拷贝、序列化与反序列化。具体的实现可以查看 Hashtable 的 clone()、writeObject()、readObject() 方法。public class Ha原创 2020-09-08 19:28:28 · 524 阅读 · 0 评论 -
Java 集合框架系列十三:JDK 1.8 HashMap 详解
HashMap 类图HashMap 继承自 AbstractMap,并实现了 Map、Cloneable、Serializable 接口。说明 HashMap 具有 Map 的全部实现,且 HashMap 默认支持浅拷贝,序列化和反序列化。具体的实现可以查看 HashMap 的 clone()、writeObject()、readObject() 方法。通过 HashMap 的文档可以得到以下信息:HashMap 是以 key-value 键值对的形式保存数据的,但是 HashMap 无法保证 k原创 2020-09-08 19:21:56 · 262 阅读 · 0 评论 -
Java 集合框架系列十二:Map 和 AbstractMap 详解
Map 类定义/** * * @see HashMap * @see TreeMap * @see Hashtable * @see SortedMap * @see Collection * @see Set * @since 1.2 */public interface Map<K,V> {}Map 是一个顶级接口,它也是 Java 集合框架的一员,Map 是一种基于 key-value 键值对的数据格式,并且 key 值不可以重复,每个 key 最多只能对应原创 2020-09-08 23:11:34 · 465 阅读 · 0 评论