目录
1.collection
是一个接口,它实现于interable父亲接口。在collection接口底下又能实现好多接口:list queue set
2.List
-
list是一个接口,它实现于cllection。
-
它能实现的类是:ArrayList LinkedList vector stack 等类
3.ArrayList
(1)要是没有无参构造函数的话,默认是空的数组,长度是0
(2)要是是传参的构造函数
(3)有元素插入,就可能进行扩容。要是元素的个数小于初始10长度,就不管。要是大于的话,就进行扩容。是1.5倍进行扩容的
(4)在插入元素的时候,要是头插就是0(1),i号位置的插入时O(N - i)。
(5)支持按照下标进行访问,能进行快速查找
(6)不同步的,线程不安全的
(7)它只能容纳对象,不能容纳基本数据类型,这也就是为啥里边的参数是一个泛型,在用的时候我们一直填的是Interger而不是int。
4.LinkedList
(1)是基于双向链表实现的
(2)是链表,不牵扯扩容机制
(3)不支持随机访问元素下标,要是查询只能进行遍历
(4)因为有节点,插入删除效率高,时间复杂度是O(1)
(5)不同步,也是线程不安全的,原因是里边也是牵扯到-- 操作。
5.Array
(1)表示的是数组,它是用final修饰的一个类
(2)既能存放基本数据类型,也能存对象
(3)使用的时候要指定大小
6.stack
(1)继承的类
(2)常用方法(push,pop,peek)
push 方法,表示的是入栈操作。
pop操作,表示的是出栈操作,栈的内容实际减少了
peek操作,只是查看栈顶元素,栈里边的元素没有发生变化
(3)特点
先进后出的,栈只能在一段进行操作。
遍历方式是BFS。
7.queue
(1)是一个接口,实现自collection接口
linkedlist能new一个队列
(2)常用方法
入队操作(add方法和offer方法)
add要是操作错误会抛异常
offer会返回特殊值
出队操作(remove方法和poll方法),前者会抛异常,后者会返回特殊值
取队首元素(element和peek方法),前者是抛异常,后者是返回特殊值。
(3)先进先出的,能在两端进行操作
(4)遍历方式是DFS
8.collection和collections的区别:
collection
是一个集合框架的父类的接口,它的底下可以有很多的子接口,如:list接口,queue接口,set接口。
collections
首先collections是一个包装类,继承自object类。不能被实例化。