当前位置: 首页 > news >正文

soul Java开发面试题及参考答案

Java 集合有哪些?有什么区别?怎么实现的?初始大小和扩大策略是什么?

Java 集合主要包括 List、Set、Map。

List 是有序的集合,可以包含重复元素。例如 ArrayList 和 LinkedList。ArrayList 是基于数组实现的,它的查询效率高,因为可以通过数组下标直接访问元素,时间复杂度为 O (1)。在添加和删除元素时,特别是在中间位置操作,可能需要移动大量元素,时间复杂度为 O (n)。它的初始大小是 10,当元素个数超过容量时,会进行扩容,扩容策略是创建一个新的数组,其大小是原来的 1.5 倍左右,然后将原数组的元素复制到新数组。LinkedList 是基于链表实现的,它在添加和删除元素时效率较高,特别是在首尾位置操作,时间复杂度为 O (1),但查询效率相对较低,时间复杂度为 O (n)。

Set 是不包含重复元素的集合。HashSet 是基于哈希表实现的,它通过计算元素的哈希码来快速确定元素是否存在,添加、删除和查询操作的时间复杂度接近 O (1)。TreeSet 是基于红黑树实现的,元素会按照自然顺序或者指定的比较器顺序进行排序,添加、删除和查询操作的时间复杂度为 O (logn)。

Map 是用于存储键值对的集合。


http://www.mrgr.cn/news/79972.html

相关文章:

  • 110.【C语言】数据结构之判断是否为完全二叉树
  • erlang 基于jose 实现 aes 加解密
  • 【C++】判断能否被 3, 5, 7 整除问题解析与优化
  • WIN11中安装Mamba常见问题解决方案
  • windows C#-自动实现属性的轻型类
  • Java项目实战II基于Java+Spring Boot+MySQL的社区帮扶对象管理系统的设计与实现(开发文档+数据库+源码)
  • src 和 href 的区别
  • 在AMD Instinct MI300X加速器上训练Transformers和混合模型
  • 深入解析C++中的函数指针与`typedef`的妙用
  • 快速上手Neo4j图关系数据库
  • 测试岗位应该学什么
  • 操作系统(3)操作系统的运行环境
  • 【他山之石】Leading-Trim: The Future of Digital Typesetting:数字排版的未来 —— Leading-Trim
  • 文献分享: PLAID——为ColBERT架构设计的后期交互驱动器
  • 【qt环境配置】windows下的qt与vs工具集安装\版本对应关系
  • 常见LeetCode-Saw200
  • C#,人工智能,深度学习,目标检测,OpenCV级联分类器数据集的制作与《层级分类器一键生成器》源代码
  • 黑马头条学习笔记
  • 【JVM】JVM基础教程(三)
  • 第 8 章 对象、类与面向对象编程