一.Java的集合
Java集合就像一种容器,可以把多个对象(实际上是对象的引用)“丢进”该容器中。从Java增加了泛型以后,Java集合可以记住容器中对象的数据类型,使得编码更加简洁、健壮。
Java里的集合分为Set,List,Map,Queue四种体系。
它们有这样的特点:Set无序,不可重复;List有序,可以重复;Map含有映射关系(键值对,类似Python的字典);Queue是用队列实现的集合。
这里的是否有序是指输入的顺序是否和存储的顺序是否一致。

二.集合和数组的区别
1.从长度角度来看:集合的长度可变,但数组的长度固定。
2.从内容角度来看:集合只能是引用数据类型,但数组可以是基本数据类型,也可以是引用数据类型。
3.从元素类型来看:一个集合可以存储不同的数据类型,但数组只能存储一种数据类型。

三.List集合的种类
List有序,可重复,可以通过索引直接操作元素。
1.ArrayList
特点:
1.ArrayList 是集合的一个实现类
2.ArrayList 内部封装了一个 Object 类型的对象,初始长度为 10,且长度可变
为什么是Object类:这里利用了多态,ArrayList为了能存储各种不同的数据类型,创建了Object类型的数组,因为Object类是所以类的父类,子类可以向上转型,以便都可以放在集合里面。
3.ArrayList 集合的查询快,但是增删慢
查询快是因为有索引,增删慢是因为数组内需要把各个数据一个接一个地移动或覆盖。
4.线程不安全

2.LinkedList
特点:
1.LinkedList 是集合的一个实现类
2.LinkedList 内部封装了一个双向链表
3.LinkedList 集合的增删快,但是查询慢
增删快是因为LinkedList内部是双向链表结构,每个节点包含自身数据,指向前一个节点的引用和指向后一个节点的引用。查询慢是因为若要查询某个元素,必须从链表的头节点或尾节点开始,逐个遍历节点。
4.线程不安全

3.Vector
特点:
1.底层数据结构是带有泛型的数组
2.有索引、查询快、增删慢
3.单线程,线程安全


被折叠的 条评论
为什么被折叠?



