day39周日休息_chap-Collection_1.接口特性

 

/**
 *    List   1, 【子类or子接口】是 Collection 的子实现, ( -Collection)
 *           2, 【数据结构】表示一个线性表
 *           3,×【底层结构】空,抽象接口不存在这一项
 *           4,×【默认初始长度、扩容】空,抽象接口不存在这一项
 *           5, 【有序or无序】有序(有下标,就可以用下标方法。线性表)
 *           6, 【可否重复】可以重复
 *           7, 【可否null】可以存储null
 *           8,×【线程是否安全】空,抽象接口不存在这一项
 *
 *           两句:是Collection子实现,表示的数据结构是线性表,
 *                元素有序可以重复可以存储null
 */
/**
  ArrayList  1, 【子类or子接口】是 List 接口的一个具体子实现, (-List     -Collection)
             2, 【数据结构】表示一个线性表
 *           3, 【底层结构】底层是数组
 *           4, 【默认初始长度、扩容】默认长度10, 默认扩容: 1.5倍(第一次添加设置10)
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】可以存储null
 *           8, 【线程是否安全】线程不安全
 *
 *           两句:是List接口的一个具体子实现,表示的数据结构是线性表,底层是数组,默认初始长度10,默认扩容机制1.5倍
 *                元素有序可以重复可以存储null,线程不安全
 */
/**
 *   Vector  1, 【子类or子接口】是 List的一个具体子实现, (Vector-List     -Collection)
 *           2, 【数据结构】表示一个线性表
 *           3, 【底层结构】Vector底层是个数组
 *           4, 【默认初始长度、扩容】默认长度10, 默认扩容: (有没有大于0增量)?(旧长度+增量):(旧长度2倍)
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】可以存储null
 *           8, 【线程是否安全】是线程安全
 *
 *           三句:是List子实现,表示的数据结构是线性表,底层是数组,默认初始长度10,默认扩容机制取决于有没有大于0增量
 *                (有没有大于0增量)?(旧长度+增量):(旧长度2倍)
 *                元素有序可以重复可以存储null,是线程安全的
 */
/**
 *    Stack  1, 【子类or子接口】是 Vector的一个具体子实现, (Stack-Vector-List     -Collection)
 *           2, 【数据结构】表示一个栈
 *           3, 【底层结构】Stack底层是个数组(复用父类Vector的)
 *           4, 【默认初始长度、扩容】默认长度10, 默认扩容: 2倍
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】可以存储null
 *           8, 【线程是否安全】是线程安全
 *
 *           两句:是Vector具体子实现,表示的数据结构是栈,底层是数组,默认初始长度10,默认扩容机制2倍
 *                元素有序、可以重复、可以存储null,是线程安全的
 *
 *    方法:作为栈,别用普通集合类方法 add等等,可以用但是别用
 */
/**
  LinkedList 1, 【子类or子接口】是 List 的子实现, 还是 Deque 的子实现( -List   -Deque)
 *           2, 【数据结构】可以表示:1.线性表 2.队列 3.双端队列 4.栈
 *           3,×【底层结构】空,抽象接口不存在这一项
 *           4,×【默认初始长度、扩容】空,抽象接口不存在这一项
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】可以存储null
 *           8, 【线程是否安全】不安全
 *
 *           两句:是 List 子实现,表示的数据结构可以是线性表、队列、双端队列、栈
 *                元素有序可以重复可以存储null,线程不安全
 */
/**
     Queue   1, 【子类or子接口】是 Collection 的子实现, ( -Collection)
 *           2, 【数据结构】表示一个队列
 *           3,×【底层结构】空,抽象接口不存在这一项
 *           4,×【默认初始长度、扩容】空,抽象接口不存在这一项
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】不允许null
 *           8,×【线程是否安全】空,抽象接口不存在这一项
 *
 *           两句:是 Collection 子实现,表示的数据结构是队列,
 *                元素有序可以重复不允许null
 *
 *                删除poll操作:没有元素可以删除就返回null来标记
 */
/**
     Deque   1, 【子类or子接口】是 Queue 的子实现( -Queue)
 *           2, 【数据结构】可以表示:1.队列 2.双端队列 3.栈
 *           3,×【底层结构】空,抽象接口不存在这一项
 *           4,×【默认初始长度、扩容】空,抽象接口不存在这一项
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】不允许 null
 *           8,×【线程是否安全】空,抽象接口不存在这一项
 *
 *           两句:是 Queue 子实现,表示的数据结构可以是队列、双端队列、栈
 *                元素有序可以重复不允许存储 null
 */
/**
  ArrayDeque 1, 【子类or子接口】是 Deque 的子实现, ( -Deque)
 *           2, 【数据结构】表示一个:1.队列 2.双端队列 3.栈
 *           3, 【底层结构】循环数组
 *           4, 【默认初始长度、扩容】默认初始长度 16, 扩容机制 2倍, 底层数组长度:大于给定值的最小2的幂值
 *           5, 【有序or无序】有序
 *           6, 【可否重复】可以重复
 *           7, 【可否null】不允许null
 *           8, 【线程是否安全】不安全
 *
 *           三句:是Deque子实现,表示的数据结构可以是:1.队列 2.双端队列 3.栈 , 底层是循环数组
 *                底层数组长度:大于给定值的最小2的幂值
 *
 *                元素有序可以重复不允许存储null,线程不安全
 *
 **/
/**
 BlockingQueue 1, 【子类or子接口】是 Queue 的子接口( -Queue)
 *             2, 【数据结构】可以表示一个阻塞队列
 *             3,×【底层结构】空,抽象接口不存在这一项
 *             4,×【默认初始长度、扩容】不能扩容,否则就没有阻塞的必要
 *             5,×【有序or无序】?
 *             6,×【可否重复】?
 *             7,×【可否null】?
 *             8,×【线程是否安全】?
 *
 *           两句:是 Queue 子实现,表示的数据结构是阻塞队列
 *
 */
/**
      Map    1, 【子类or子接口】是 Map 集合体系的顶级接口( -Queue)
 *           2, 【数据结构】可以表示 key-value 键值对数据
 *           3,×【底层结构】空,抽象接口不存在这一项
 *           4,×【默认初始长度、扩容】空,抽象接口不存在这一项
 *           5, 【有序or无序】有的子实现有序,有的子实现无序
 *           6, 【可否重复】不允许重复key
 *           7, 【可否null】有的子实现允许 null key,有的子实现不允许 null key
 *           8,×【线程是否安全】空,抽象接口不存在这一项
 *
 *           两句:是 Map 集合体系顶级接口,表示的数据结构是 key-value 键值对数据
 *                有的子实现有序, 有的子实现无序
 *                不允许重复 key
 *                有的子实现允许 null 作为 key,有的子实现不允许 null 作为 key
 */
/**
   HashMap   1, 【子类or子接口】是 Map 的具体子实现( -Map)
 *           2, 【数据结构】可以表示:?
 *           3,×【底层结构】数组 + 链表 + 红黑树 jdk1.8后(为了避免数组中某一个链表过长,效率降低)
 *           4,×【默认初始长度、扩容】默认初始长度 16,数组扩容机制:2倍(永远是2的整数次幂)
 *           5, 【有序or无序】无序
 *           6, 【可否重复】不允许重复 key
 *           7, 【可否null】允许存储null key
 *           8, 【线程是否安全】不安全
 *           9, 【新特性】拥有默认加载因子:0.75 可以存储key-value的数据量:数组长度 * 加载因子
 *           10,【】通过 key 得到存储数组上下标的位置
 *           11,【】创建 HashMap 时给定一个长度,会创建一个大于等于给定长度的数组
 *           12,【】HashMap 取 hash 值,移位和异或运算:是为了充分散列(高位参与运算)
 *           13,【】什么时候链表转化为红黑树:多个不同的数据经过散列得到同一个位置,构成一个链表。算上新加元素一共8-9个,就从链表转红黑树
 *           14,【】红黑树转化回链表:A.不断的删除(删除的元素在红黑树)
 *                                B.扩容:红黑树拆分到两个位置
 *           15,【】HashMap的底层数组:是一个 Node 类型:key value hash next
 *
 *           两句:是 Map 子实现,底层结构是数组+链表+红黑树,默认初始长度16扩容机制2倍
 *                元素无序不允许重复允许存储null key,线程不安全
 *                默认加载因子
 *                ...
 */

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值