Java集合面试题
1.概念
数组与集合区别,用过哪些?
数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。
数组是固定长度的数据结构,一旦创建长度就无法改变,而集合是动态长度的数据结构,可以根据需要动态增加或减少元素。
数组可以包含基本数据类型和对象,而集合只能包含对象。
数组可以直接访问元素,而集合需要通过迭代器或其他方法访问元素。
说说Java中的集合?

List:存储的元素是有序的、可重复的。常用的实现List的类有ArrayList,LinkedList,Vector,Stack。
(1) ArrayList底层实现原理
ArrayList底层是用动态的数组实现的
ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10
ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组
(2) LinkedList本质是一个双向链表,与ArrayList相比,其插入和删除速度更快,但随机访问速度更慢。
(3) Vector底层使用Object[] 存储,线程安全
LinkedList
HashMap:基于哈希表的Map实现,存储键值对,通过键快速查找值。
HashSet:基于HashMap实现的Set集合,用于存储唯一元素。
TreeMap:基于红黑树实现的有序Map集合,可以按照键的顺序进行排序。
LinkedHashMap:基于哈希表和双向链表实现的Map集合,保持插入顺序或访问顺序。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 lzl
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果