查缺补漏-JavaCollecionsFramework

本章是整理知识内容,为强化知识长期更新。

介绍下Java 集合框架的基础接口

  • Collection ,为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java 平台不提供这个接口任何直接的实现。
    • Set ,是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。
    • List ,是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List 更像长度动态变换的数组。
  • Map ,是一个将 key 映射到 value 的对象。一个 Map 不能包含重复的 key,每个 key 最多只能映射一个 value 。
  • Queue
  • Dequeue
  • SortedSet
  • SortedMap
  • ListIterator

介绍下TreeMap 的数据结构

  • Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。
  • TreeMap 的数据结构通常称之为红黑树(平衡二叉树)(红黑树(平衡二叉树)是一种特殊的排序二叉树)。

介绍下LinkedList的数据结构。

  • List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作。
  • LinkedList的本质是双向链表。链表LinkedList是由若干个称为结点的对象组成的一种数据结构,每个结点含有一个数据和下一个结点的引用,或含有一个数据并含有上一个结点的引用和下一个结点的引用。
  • Iterator和Iterable的关系。
  • List、Set、Map和Queue之间的区别。
  • 介绍下ArrayList。
  • 介绍下LinkedList。
  • 介绍下Vector。
  • 介绍下HashMap。
  • poll()和remove()方法的区别。
  • 介绍下HashMap和HashTable的区别,比较。
  • ArrayList和LinkedLiast的区别,比较。
  • ArrayList和Vectir的区别,比较。
  • 介绍Collection和Collections的区别,比较。
  • 介绍下Enumeration接口和Iterator的区别。
  • HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。
  • HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。
  • HashMap,HashTable,ConcurrentHashMap的区别。
  • 极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。
  • HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。
  • 一个ArrayList在循环过程中删除,会不会出问题,为什么。