当前位置: 首页 > 图灵资讯 > 技术篇> java collection面试题汇总(附答案)

java collection面试题汇总(附答案)

来源:图灵教育
时间:2023-03-27 16:04:49

在许多大公司java程序员在职位面试中,是的java收集框架中的知识点仍然很有可能进行调查。因为每种语言都使用框架,所以框架已经成为程序员的必要技能之一,java编程也是如此。下面整理了一些。java collection面试题,需要面试的朋友可以学习。

对于集合类,主要需要掌握的是其内部结构和遍历集合的迭代模式。

1、Java集合框架的基本接口是什么?

答:Collection是集合层次的根源。集合包含一组对象作为其元素。 Java平台不提供任何直接实现此接口。

Set 它是一个不能包含重复元素的集合。该接口模型代表数学Set的抽象,用于代表一组Set,如扑克牌。

List是一个有序的集合,可以包含重复的元素。您可以从其索引中访问任何元素。更像是动态长度的数组列表。

一个Map是键映射值的对象。一个Map不能包含重复键:每个key只能映射一个值。

其他接口Queue, Dequeue, Iterator, SortedSet,和listiteratorsortedMap。

2、为什么MAP接口不实现Collection接口?

答:虽然Map接口及其实现是集合框架的一部分,但Map不是集合,集合也不是地图。因此,实现集合接口毫无意义。

3、为什么不能继承Cloneable和Serializable接口?

答:Collection接口指定一组称为元素的对象。如何组织元素取决于具体实现。例如,一些LIST允许重复元素,而SET不允许。Collection是一种抽象的表达,克隆和序列化侧重于执行,应根据Collection的具体要素组织实现子类。因此,克隆和序列化在所有实现中都是不够灵活和有限的。

4、什么是Iterator?

答:Iterator接口提供遍历集合的方法。我们可以从集合中获得迭代器的例子。迭代器允许呼叫者在迭代过程中从集合中删除元素。

5、Iterator和listiterator有什么区别?

答:我们可以使用迭代器Iterator经历了Set和List的集合,而Listiterator只能使用List。

迭代器遍历前进的方向,Listiterator可用于两个方向的遍历。

Listiterator继承了Iterator接口,并配备了添加元素、更换元素等额外功能,以获得上下元素的索引位置。

6、什么是Set接口?

答:Set是一种不含重复元素的Collection,即任何两个元素E1和E2都有E1.equals(e2)=false,Set最多有一个null元素。很明显,Set的构造函数有一个约束条件,引入的collection参数不能包含重复元素。

请注意:必须小心操作可变对象(Mutable Object)。如果Set中的可变元素改变了自己的状态,导致Object.equals(Object)=true会导致一些问题。

7、为什么Iterator接口没有具体实现?

答:每个集合返回一个迭代器来遍历自己。这使得集合类能够选择迭代器是否快速失败。 fail-故障安全faill-safe。比如ArrayList的迭代器快速失败,而CopyonWriteArayList的迭代器是故障安全的。

8、Hashmap怎么工作?

答:Hashmap以哈希算法工作,当put和get方法被调用时,hashcode()和equals()用于配合:当我们使用put方法时,hashmap使用keyhashcode()散列在键中 - 在值存储中找出索引。k-v条目Entry存储在LinkedList中,因此如果存在Entry,则使用equals()方法检查相应的键key是否存在。如果是,它覆盖了原始值,否则它创建了一个新的entry条目和存储键值;当我们通过键key调用get方法时,再次使用hashcode()在数组中找到索引,然后用equals()法找到正确的项目,并返回其值。

9、Map提供的Colection视图有什么区别?

答:(1)Set keySet():返回此Map中包含的键的Set视图;(2)Collection values():返回本Map中包含的值的Collection视图;(3)Set> entrySet():返回本Map中包含的映射关系的Set视图。

10、集合框架有什么好处?

答:使用核心集合类,不需要实现自己的集合类,减少开发工作;使用测试的集合框架类来提高代码质量;使用JDK附带集合类减少代码维护;可重用性和互操作性。

以上是今天为大家整理的。java collection面试题,共有10道包含最常见的知识点。希望大家看到自己模糊的知识点,能及时查阅资料,听取相关知识点。java培训课程的方式学会彻底理解java collection掌握内容的方面java collection基础知识,顺利通过java面试。