货拉拉Java面试题及参考答案

Java集合、数据结构及项目日志查看要点

请介绍一下 Java 集合类有哪些,你一般用哪些,在什么样的场景会选择用这些集合类?

Java 集合类主要分为两大体系,Collection 和 Map。

Collection 又包括 List、Set 和 Queue。List 是有序的集合,元素可以重复。其中 ArrayList 是基于数组实现的动态数组,它的优点是随机访问效率高,在需要频繁通过索引访问元素、或者需要动态调整大小(添加、删除元素)并且对性能要求较高的场景下很适用。例如存储一个班级学生的成绩列表,方便根据索引获取某个学生的成绩,也方便增加或者删除某个学生的成绩记录。LinkedList 是基于链表实现的,它在插入和删除操作比较频繁(特别是在集合头部或者尾部进行操作)的场景更有优势,比如实现一个栈或者队列结构。

Set 是不允许元素重复的集合。HashSet 是基于哈希表实现的,它的性能比较好,添加、删除、查找操作的时间复杂度基本都是常数时间。当需要存储一组不重复的元素,并且对元素的顺序没有要求,比如存储所有用户的唯一标识就很合适。TreeSet 是基于红黑树实现的有序集合,它会自动对元素进行排序,当需要存储一组不重复且有顺序要求的元素时可以使用,例如存储按照字典序排列的单词集合。

Queue 主要用于在处理之前保存元素的集合,常见的有 LinkedList(可以作为队列使用),PriorityQueue 是一个优先队列,它会根据元素的优先级来排序,在任务调度等场景很有用,比如操作系统中的进程调度,高优先级的进程先执行。

Map 是用于存储键 - 值对的集合。HashMap 是最常用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值