Java中数组、集合、链表、队列的数据结构和优缺点和他们之间的区别
数组:
- 长度固定
- 可以存储基本类型,也可以存储引用类型
- 存储元素类型一致
数组可以在内存中连续存储多个元素的构造,在内存中的分配也是连续的
数组中的元素通过数组的下标进行访问的,下标从0开始的
优点:
按照索引查询元素速度快
按照索引遍历数组方便
缺点:
数组的大小固定后就不能扩容了
数组只能存储一种类型的数据
添加,删除的操作慢,因为要移动其他的元素
适用场景:
频繁查询,对存储空间要求不大,很少增加和删除的情况
集合:
- 长度可变
- 只可以存储引用类型
- 可以存储多种类型
List:有序、可以有重复的集合
List 接口的三个典型实现:
1,List list1 = new ArrayList();
底层数据结构是数组,查询快,增删慢;线程不安全,效率高
2,List list2 = new Vector();
底层数据结构是数组,查询快,增删慢;线程安全,效率低,几乎已经淘汰了这个集合
3,List list3 =