搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
算法构造者
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
高级数据结构 <二叉搜索树>
2
谁是远程界的天花板?2023年5款最常用的远程软件横测:ToDesk、向日葵、TeamViewer、Splashtop、AnyDesk_远程app有哪些
3
PoeAI:免费使用GPT-4的AI聊天机器人平台
4
网络游戏防沉迷实名认证系统常见错误说明_sys req partner error
5
最火web大屏可视化编辑器_大屏编辑器
6
人工神经网络的发展历程,神经网络发展历程简述
7
认识Kubernetes_k8s集群中一个节点是不是一个宿主机
8
【HarmonyOS】【ArkTS】如何使用HTTP网络请求获取动态数据刷新UI界面_arkts怎么做接口请求
9
微信小程序项目实例源码——本地电商平台小程序_电商小程序源码
10
区块链金融科技:技术融合与挑战应对【文末送书-16】
当前位置:
article
> 正文
java集合面试题:说说 List,Set,Map 三者的区别?三者底层的数据结构?
作者:算法构造者 | 2024-02-05 17:42:24
赞
踩
java集合面试题:说说 List,Set,Map 三者的区别?三者底层的数据结构?
List、Set和Map是
Java集合框架
中的三个常用接口,它们有以下区别:
List:
List是有序的集合,允许重复元素。
可以通过索引访问元素,支持按照元素的插入顺序进行遍历。
常见的实现类有ArrayList和LinkedList。
底层数据结构:ArrayList基于动态数组实现,LinkedList基于双向链表实现。
Set:
Set是无序的集合,不允许重复元素。
不提供按照索引访问元素的方式,也不保证元素的顺序。
常见的实现类有HashSet和TreeSet。
底层数据结构:HashSet基于哈希表实现,TreeSet基于红黑树实现。
Map:
Map是键值对的集合,每个元素包含一个键和对应的值,键是唯一的。
通过键来访问值,不保证元素的顺序。
常见的实现类有HashMap和TreeMap。
底层数据结构:HashMap基于哈希表实现,TreeMap基于红黑树实现。
总结:
List允许重复元素,有序可重复,适合需要按照索引访问元素的场景。List提供了一系列按索引访问元素的方法,如get(int index)、set(int index, E element)和remove(int index)等。List还提供了一些特定于索引的操作,如add(int index, E element)、indexOf(Object o)和subList(int fromIndex, int toIndex)等。
Set不允许重复元素,无序不重复,适合需要判断元素是否存在的场景。Set接口继承自Collection接口,它不允许存储重复元素。Set提供了用于添加、删除和判断元素是否存在的方法,如add(E e)、remove(Object o)和contains(Object o)等。
Map存储键值对,键唯一,适合需要根据键来查找值的场景。Map接口提供了键值对的存储和操作功能。Map中的键是唯一的,每个键关联一个值。Map提供了用于添加、删除、查找和遍历键值对的方法,如put(K key, V value)、remove(Object key)、get(Object key)和keySet()等。
关于底层数据结构:
ArrayList和LinkedList都是线性结构,ArrayList基于数组,随机访问速度快,但插入和删除元素的效率较低;LinkedList基于链表,插入和删除元素的效率较高,但随机访问的效率相对较低。
HashSet基于哈希表,通过哈希函数计算元素的存储位置,插入和查找元素的效率较高。
TreeSet基于红黑树,对元素进行排序并存储,插入和查找元素的效率较高,同时具备有序性。
HashMap基于哈希表,通过哈希函数计算键的存储位置,插入和查找键值对的效率较高。
TreeMap基于红黑树,对键进行排序并存储,插入和查找键值对的效率较高,同时具备有序性。
需要根据具体的需求和使用场景来选择适合的集合类型和底层实现。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/算法构造者/article/detail/61311
推荐阅读
article
Java
——
学生
成绩
管理系统
_
学生
成绩
管理系统
java
...
学生
管理系统
是一种基于计算机技术实现的
学生
信息管理工具,能够方便地对
学生
信息进行录入、查询、修改和删除。该项目采用 Ja...
赞
踩
article
基于
java
web+
mysql
的jsp+
servlet
选课
管理系统
(
java
+jsp+
servlet
...
一款简单的Servlet +
mysql
+ jsp的选课系统,主要有三大模块,管理员模块,教师模块,学生模块。管理员模...
赞
踩
article
HarmonyOS
鸿蒙基于
Java
开发
:
Java
UI
常用
组件
DatePicker
...
DatePicker
主要供用户选择日期。
HarmonyOS
鸿蒙基于
Java
开发
:
Java
UI
常用
组件 DatePic...
赞
踩
article
华为
OD
机试
- 学生方阵 -
矩阵
(
Java
2023 B卷 200分)...
本题的解题思路其实不难,遍历查找
矩阵
中每一个 M 点,然后求该 M 点的水平、垂直、正对角线、反对角线四个方向的 M 点...
赞
踩
article
解决
java
.io.FileNotFoundException:
HADOOP
_
HOME
and h...
解决
java
.io.FileNotFoundException:
java
.io.FileNotFoundExcepti...
赞
踩
article
17.鸿蒙
HarmonyOS
App
(
JAVA
)
滑动
选择器
...
/ 同时设置上下边框。// 单独设置上边框。// 单独设置下边框。17.鸿蒙
HarmonyOS
App
(
JAVA
)
滑动
选...
赞
踩
article
基于
springboot
的校园
资料
分享
平台
(
mysql
)-
JAVA
.
VUE
【计算机毕设
、
网页开发
、
论...
管理端功能有:学生管理
、
资源分类管理
、
资料
管理
、
举报反馈管理
、
系统公告管理等更多功能请看运行截图!_
基于
springbo...
赞
踩
article
java
+
vue
实现
文件
管理系统
(超
简洁
)
_
vue
文件
管理系统
...
开源一个超简易的
文件
管理系统
,只是为了满足自己一些小
文件
的统一在线管理
_
vue
文件
管理系统
vue
文件
管理系统
...
赞
踩
article
SpringBoot+Vue.js
读书笔记
共享
网站
系统
java
_vue +
java
搭建一个
共享
文件...
前台首页:首页、笔记分享、交流信息、个人中心、后台管理。管理员在通过笔记分享管理进入页面可以查看笔记名称、笔记类型、笔记...
赞
踩
article
LangChain
-
java
学习
篇(一)
_
langchain
java
...
这是
langchain
的Java语言实现。大型语言模型(LLM)正成为一种变革性的技术,使开发人员能够构建以前无法构建的...
赞
踩
article
Java
设计者
模式
以及与
Spring
关系(五)
策略
和
观察者
模式
...
Java
设计者
模式
以及与
Spring
关系(五)
策略
和
观察者
模式
Java
设计者
模式
以及与
Spring
关系(五)
策略
...
赞
踩
article
Hotspot
源码
解析
-第
23
章--
Java
Class
的
初始化
...
Hotspot
源码
解析
;JVM源码
解析
;JVM
Java
Class
初始化
;
Java
虚拟机源码
解析
Hotspot
源码
解析
...
赞
踩
article
java
web
职位
推荐系
系统
Myeclipse
开发
mysql
数据库
协同过滤算法
java
编程计算机...
java
Web
职位
推荐
系统
是一套完善的
java
web信息管理
系统
,对理解JSP
java
编程
开发
语言有帮助,
系统
具...
赞
踩
article
Java
LeetCode
篇-
二叉
搜索
树
经典解法(实现:
二叉
搜索
树
的
最近
公共祖先、根据
前序
遍历
建
树
等...
1.0 判断合法性 、 2.0 求范围和 、 3.0 根据
前序
遍历
结果建
树
、 4.0
二叉
搜索
树
的
最近
祖宗 、 5.0...
赞
踩
article
【
数据结构
】
链
队列
的
基本操作
(
C语言
版)...
【
数据结构
】
链
队列
的
基本操作
(
C语言
版)【
数据结构
】
链
队列
的
基本操作
(
C语言
版) 目录 ...
赞
踩
article
2024年
华为
OD
机试真题-
分割
均衡
字符串
-
Java
-
OD
统一考试(C卷)...
给定一个
均衡
字符串
,请给出可
分割
成新的
均衡
子串的最大个数。
均衡
串定义:
字符串
只包含两种字符,且两种字符的个数相同。
字符串
...
赞
踩
article
2024年
华为
OD机试真题-
最大
坐标值
-
Java
-OD统一考试(C卷)...
整个游戏过程中,小明所处的
坐标值
依次为[0,-6,-5,1,1,-6],
最大
坐标值
为1。整个游戏过程中,小明所处的
坐标值
...
赞
踩
article
【华
为
OD机试真题
JAVA
】
篮球
比赛
_
篮球
(5v5)
比赛
中,
每个
球员
拥有一个
战斗力
,
每个
队伍
的所有...
标题:
篮球
比赛
|
篮球
(5V5)
比赛
中,
每个
球员
拥有一个
战斗力
,
每个
队伍
的所有
球员
战斗力
之和
为
该
队伍
的总体
战斗力
。现有1...
赞
踩
article
【华为机试真题
JAVA
】
篮球比赛
-100_
java
篮球比赛
中,
每个
球员
拥有一个
战斗力
...
篮球(5V5)比赛中,
每个
球员
拥有一个
战斗力
,
每个
队伍的所有
球员
战斗力
之和为该队伍的总体
战斗力
。现有10个
球员
分为两队进...
赞
踩
article
Redis
学习
笔记 2:
Java
客户端
...
Spring 对 Jedis 和 lettuce 进行了封装,spring-data-redis 提供统一的 API 进...
赞
踩
相关标签
mysql
数据库
开发语言
json
java
jquery
DatePicker
常用组件
ui
harmonyos
XML
华为od
算法
七日集训
学习
程序人生
hadoop
后端
大数据
华为