1.概念

数组与集合区别,用过哪些?

数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。

  • 数组是固定长度的数据结构,一旦创建长度就无法改变,而集合是动态长度的数据结构,可以根据需要动态增加或减少元素。

  • 数组可以包含基本数据类型和对象,而集合只能包含对象。

  • 数组可以直接访问元素,而集合需要通过迭代器或其他方法访问元素。

说说Java中的集合?

1717481094793-b8ffe6ae-2ee6-4de5-b61b-8468e32bf269-crwneadn.webp

List存储的元素是有序的、可重复的常用的实现List的类有ArrayList,LinkedList,Vector,Stack。

(1) ArrayList底层实现原理

  • ArrayList底层是用动态的数组实现的

  • ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10

  • ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组

(2) LinkedList本质是一个双向链表,与ArrayList相比,其插入和删除速度更快,但随机访问速度更慢。

(3) Vector底层使用Object[] 存储,线程安全

  1. LinkedList

  2. HashMap:基于哈希表的Map实现,存储键值对,通过键快速查找值。

  3. HashSet:基于HashMap实现的Set集合,用于存储唯一元素。

  4. TreeMap:基于红黑树实现的有序Map集合,可以按照键的顺序进行排序。

  5. LinkedHashMap:基于哈希表和双向链表实现的Map集合,保持插入顺序或访问顺序。