一、数组Array
1、数组在内存中是连续存储的,所以它的索引速度是非常快的,而且赋值和修改元素也很简单
2、申明数组时,必须同时指定数组的长度,数组的长度过长,会造成内存浪费,数组的长度过短,可能会造成数据溢出
3、数组只能存在类型一样的数据,(基本数据类型 或 引用类型)
二、集合Collection,List,Set
1、JAVA集合只能存放引用类型的数据,不能存放基本数据类型,但是集合可以存放不同类型的引用类型,因为存入集合的元素都被转化成了Object 类型,之后再引用集合中的类型需要强制类型转换,这就导致了集合的类型不安全,以及类型转换的性能损耗
2、接口List,集Set,都继承了Collection接口,
线性是一种逻辑结构,数据结构中的除去守卫元素外,其他元素都有唯一的钱去和后继
3、List 和Set的区别
List特点:元素有放入顺序,元素可重复,
Set特点:元素无放入顺序,元素不可重复,
4、List有三大实现类:ArrayList,linkedList,Vector
4.1、ArrayList底层是以数组实现
4.2、linkedList是双向链表实现,适合于经常实现增删操作,但是查询和修改的效率没有ArrayList和Vector快,
4.3、ArrayList 和 Vector类似,也是数组实现,但是它是同步的,是线程安全的,不会有并发产生的问题,但是效率要低于ArrayList



