JDK8常用集合类自上而下的关系
来源:互联网 发布:软件502 bad gateway 编辑:程序博客网 时间:2024/05/25 23:27
在Java中,集合类主要分为4大部分:Queue、Map、List、Set.
1. 首先来看一下顶层接口Collection接口:
public interface Collection<E> extends Iterable<E> {
由上述代码可见,集合类的顶层接口Collection扩展了Iterable接口;
2. 在顶层接口的下一层为AbstractCollection虚类,虚类实现了Collection中的部分方法;
public abstract class AbstractCollection<E> implements Collection<E> {
3. Set、Queue、Map、List
3.1 List
List接口是list的顶层接口,List接口定义如下:
public interface List<E> extends Collection<E>
由上可见,List接口扩展了Collection接口。
list集合的顶层类为AbstractList虚类:
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
由上可见,list顶层类AbstractList是一个虚类,AbstractList扩展了AbstractCollection类。
而我们常用的ArrayList、LinkedList都是扩展了AbstractList类:
//ArrayList类public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable;//LinkedList类没有直接继承AbstractList类,而是通过AbstractSequentialList类间接继承了AbstractList类public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable;public abstract class AbstractSequentialList<E> extends AbstractList<E> ;
3.2 Map
Map接口定义如下:
public interface Map<K,V> ;
由上可见Map接口并没有继承Collection接口;
Map接口的顶层类为AbstractMap,定义如下:
public abstract class AbstractMap<K,V> implements Map<K,V> ;
由上可见,AbstractMap为抽象类,没有继承AbstractCollection抽象类。
常用的HashMap以及ConcurrentHashMap的定义如下:
//HashMap的定义,可见HashMap继承了AbstractMap类。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable;//ConcurrentHashMap类的定义,可见ConcurrentHashMap同样继承了AbstractMap类public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable {
3.3 Set
Set接口的定义如下:
public interface Set<E> extends Collection<E> ;
由上可见,Map接口继承了Collection接口;
Set接口的顶层类为AbstractSet抽象类,定义如下:
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> ;
由上可见,AbstractSet继承了AbstractCollection类。
常用的HashSet、TreeSet类的定义如下:
//HashSet类的定义,可见HashSet继承了AbstractSet抽象类public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable//TreeSet类的定义,可见TreeSet继承了AbstractSet抽象类public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable
3.4 Queue
Queue接口的定义如下:
public interface Queue<E> extends Collection<E> ;
由上可见,Queue接口继承了Collection接口;
Queue接口的顶层类为AbstractQueue抽象类,定义如下:
public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E> {
由上可见,AbstractQueue抽象类继承了AbstractCollection类。
阅读全文
0 0
- JDK8常用集合类自上而下的关系
- jdk8集合类汇总介绍
- 集合类的关系
- JDK8的集合流式操作
- JDK8 中关于集合的遍历
- 自上而下的编程方法
- 集合的父子类关系
- 编译原理,自上而下非递归语法分析自上而下的语法分析
- Java JVM(九):JDK8的集合流式操作
- Java中重要的集合类关系
- Java集合类的继承关系
- Java集合-类的继承组合关系
- 集合的继承关系
- 常用集合类的比较~
- java:常用的集合类
- 常用集合类的特点
- 集合类层次关系
- 集合类关系
- 226. Invert Binary Tree
- 使用kail-linux出现文件系统有错误,需要手动修复
- node.js——path(路径)
- leetcode 322. Coin Change
- VIM编辑器入门介绍(进入退出及常用模式切换)
- JDK8常用集合类自上而下的关系
- Pythonic Data Structures and Algorithms(Array 1)
- 1145:统计字母个数
- Git学习笔记一:Git VS SVN
- C#委托的基本使用
- sharding-jdbc分库分表规则(1)-单表查询
- HDU
- 数据结构(1)--基本概念
- 安卓帧渲染数据获取方式小结