当前位置:首页 > Java技术 > 关于java集合的面试问题

关于java集合的面试问题

2022年08月04日 22:23:48Java技术12

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。

1.Java集合框架是什么?说出一些集合框架的优点?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

2.集合框架中的泛型有什么优点?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

3.Java集合框架的基础接口有哪些?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

4.为何Collection不从Cloneable和Serializable接口继承?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

5.为何Map接口不继承Collection接口?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

6.Iterator是什么?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

7.Enumeration和Iterator接口的区别?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

8.为何没有像Iterator.add()这样的方法,向集合中添加元素?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

9.为何迭代器没有一个方法可以直接获取下一个元素,而不需要移动游标?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

10.Iterater和ListIterator之间有什么区别?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

11.遍历一个List有哪些不同的方式?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

使用迭代器更加线程安全,因为它可以确保,在当前遍历的集合元素被更改的时候,它会抛出ConcurrentModificationException。

12.通过迭代器fail-fast属性,你明白了什么?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

13.fail-fast与fail-safe有什么区别?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

14.在迭代一个集合的时候,如何避免ConcurrentModificationException?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

15.为何Iterator接口没有具体的实现?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

16.UnsupportedOperationException是什么?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

17.在Java中,HashMap是如何工作的?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

18.hashCode()和equals()方法有何重要性?

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

19.我们能否使用任何类作为Map的key?

我们可以使用任何类作为Map的key,然而在使用它们之前,需要考虑以下几点:

(1)如果类重写了equals()方法,它也应该重写hashCode()方法。

(2)类的所有实例需要遵循与equals()和hashCode()相关的规则。请参考之前提到的这些规则。

(3)如果一个类没有使用equals(),你不应该在hashCode()中使用它。

(4)用户自定义key类的最佳实践是使之为不可变的,这样,hashCode()值可以被缓存起来,拥有更好的性能。不可变的类也可以确保hashCode()和equals()在未来不会改变,这样就会解决与可变相关的问题了。

比如,我有一个类MyKey,在HashMap中使用它。

关于java集合的面试问题 _ JavaClub全栈架构师技术笔记

那就是为何String和Integer被作为HashMap的key大量使用。

20.Map接口提供了哪些不同的集合视图?

Map接口提供三个集合视图:

(1)Set keyset():返回map中包含的所有key的一个Set视图。集合是受map支持的,map的变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身的移除操作以外),迭代器的结果会变为未定义。集合支持通过Iterator的Remove、Set.remove、removeAll、retainAll和clear操作进行元素移除,从map中移除对应的映射。它不支持add和addAll操作。

(2)Collection values():返回一个map中包含的所有value的一个Collection视图。这个collection受map支持的,map的变化会在collection中反映出来,反之亦然。当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身的移除操作以外),迭代器的结果会变为未定义。集合支持通过Iterator的Remove、Set.remove、removeAll、retainAll和clear操作进行元素移除,从map中移除对应的映射。它不支持add和addAll操作。

(3)Set> entrySet():返回一个map钟包含的所有映射的一个集合视图。这个集合受map支持的,map的变化会在collection中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身的移除操作,以及对迭代器返回的entry进行setValue外),迭代器的结果会变为未定义。集合支持通过Iterator的Remove、Set.remove、removeAll、retainAll和clear操作进行元素移除,从map中移除对应的映射。它不支持add和addAll操作。

学习Java的同学注意了!!!

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!

作者:考维斯
来源链接:https://blog.csdn.net/weixin_34409903/article/details/114923349

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17067.html

标签: Java集合Java
分享给朋友:

“关于java集合的面试问题” 的相关文章

一分钟搞定Java环境变量配置

一分钟搞定Java环境变量配置

对于学Java的人来说,成功配置环境变量是第一步,因为后期不论 你做什么工作,会发现都需要这些,接下来介绍如何安装与配置,我按照jdk1.6来说明,其他一致。 下载官网 首先将jdk安装好后进行配置。 右击“计算机”,右键打开“属性”,...

java基础知识讲解(一)数据类型和运算符

java基础知识讲解(一)数据类型和运算符

Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。 Java中定义了3类8种基本数据类型 数值型- b...

深入理解 Java 并发锁

深入理解 Java 并发锁

📦 本文以及示例源码已归档在 javacore 一、并发锁简介 确保线程安全最常见的做法是利用锁机制(Lock、sychronized)来对共享数据做互斥同步,这样在同一个时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性的,线程安全的...

Java虚拟机1:什么是Java

Java虚拟机1:什么是Java

前言 让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/: 97%的企业桌面运行Java 美国有89%的桌面(或计算机)运行Java 全球有900万Java开发人员 开发人员的头号选择...

Java 日志框架详解

Java 日志框架详解

1. JUL学习 JUL全称Java util Logging是java原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框 架使用方便,学习简单,能够在小型应用中灵活使用。 1.1 架构介绍 Loggers...

Java日志框架那些事儿

Java日志框架那些事儿

在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J...

冒泡排序的原理,思路,以及算法分析(Java实现)

冒泡排序的原理,思路,以及算法分析(Java实现)

冒泡排序 如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式。 1.原理:比较两个相邻的元素,将值大的元素交换到右边 2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。 (1)第一次比较:首先比较第...

java之整数的分解可以理解为倒序输出

Scanner in=new Scanner(System.in); int number ; number=in.nextInt(); int result=0; do{ int diget=number%10;...

java比较语句常犯错误和三个数比较大小

1.忘了大括号 解决: 任何if else语句后面加大括号,哪怕只有一句 2.忘了分号 if后面不能有分号 3.代码分格 Scanner in=new Scanner(System.in); int x; int y; int z;...

Java打印车票主要学习Java的比较语句

直接上代码 public static void main(String[] args) { // TODO Auto-generated method stub //初始化 Scanner in=new Scanner(S...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。