Collection 顶级接口(容器)
List与Set的区别?
List (可重复)
ArrayList(不安全)
Vector(安全)
LinkedList
Set (不可重复)
HashSet底层数据结构:HashMap(哈希表,散列表)
HashSet : 不可重复,无序(存入的顺序与取出的顺序不一致)
TreeSet: 基于二叉树(有序的)
自然排序:里面的对象具备排序的方法Comparable
选择器排序:Comparator
实例化TreeSet 传入一个排序器
选择器排序优先级>自然排序
常见的数据结构:
数组:连续的内存空间,具备下标(随机读取),读取效率最高
链表:增删改效率高(LinkedList)
队列: 先进先出
堆栈:先进后出
二叉树:
ArrayList和Vector有什么区别?
ArrayList线程不安全,速度快
Vector线程安全,速度慢
ArrayList和LinkedList的底层数据结构是什么?
ArrayList 动态数组
LinkedList 链表
ArrayList默认大小是多少,是如何扩容的?
默认大小:10
扩容因子:1.5
ArrayList和LinkedList的区别?分别用在什么场景?
ArrayList 查询效率高
LinkedList(双向链表) 增删改效率高
如何去除ArrayList中的重复值?
调用 contains 方法
contains原理: 调用对象的equals方法
equals 定义再 Object 中
没有重写的情况下 equals 比较的是内存地址
HashSet如何检查元素是否重复?
先判断hashCode()是否相同
hash相同,再判断equals()
UML类图