数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。并且可以随之改变长度.
|—collection
|-----List : 无序不同步,可重复 以下举常用的三个
|----- Vector : 线程不同步,有锁线程安全,与ArrayList相比性能慢
|----- ArrayList : 线程不同步 替代了vector 查询速度快,增删慢
|----- LinkedList: 链表结构 线程不同步 增删速度快
以上三个都是因为数据结构导致各种增删查改之间有速度区别
|-----Set:不可重复的集合
|-----hashset 不同步 顺序不能保证 因为是根据hash表来算的,先判断hashcode算法判断地址是否相同,如果不相同再根据equals来判断内容是否相同
|-----treeset 保证顺序 有两种排序规则 默认是自然排序