40 个 Java 集合面试问题和答案(建议收臧)上

前言:

Java 集合框架是 Java 编程语言的基本方面。这是java面试问题的重要主题之一。在这里,我列出了一些关于java 集合框架的重要问题和答案。

1.什么是 Java 集合框架?列出 Collections 框架的一些好处?

集合用于每种编程语言,最初的 Java 版本包含几个集合类:VectorStackHashtable Array。但是从更大的范围和使用情况来看,Java 1.2 提出了集合框架,它将所有集合接口、实现和算法分组。Java 集合在使用泛型和并发集合类进行线程安全操作方面取得了长足的进步。它还包括阻塞接口及其在 java 并发包中的实现。集合框架的一些好处是:

通过使用核心集合类而不是实现我们自己的集合类来减少开发工作。

使用经过良好测试的集合框架类可以提高代码质量。

通过使用 JDK 附带的集合类来减少代码维护工作。

可重用性和互操作性

2.集合框架中的泛型有什么好处?

Java 1.5 带有泛型,所有集合接口和实现都大量使用它。泛型允许我们提供集合可以包含的 Object 类型,因此如果您尝试添加任何其他类型的元素,则会引发编译时错误。这避免了运行时的 ClassCastException,因为您将在编译时收到错误。由于我们不需要使用强制转换和 instanceof 运算符,泛型也使代码更干净。它还增加了运行时的好处,因为不会生成进行类型检查的字节码指令。

3.Java Collections Framework 的基本接口是什么?

集合是集合层次结构的根。集合表示一组称为元素的对象。Java 平台不提供此接口的任何直接实现。

Set是一个不能包含重复元素的集合。该接口对数学集合抽象进行建模,并用于表示集合,例如一副纸牌。

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

Map是将键映射到值的对象。映射不能包含重复的键:每个键最多可以映射到一个值。

其他一些接口是Queue、Dequeue、Iterator、SortedSet和。SortedMapListIterator

4.为什么 Collection 不扩展 Cloneable 和 Serializable 接口?

集合接口指定一组称为元素的对象。如何维护元素取决于 Collection 的具体实现。例如,某些 Collection 实现(如 List)允许重复元素,而其他实现(如 Set)则不允许。许多 Collection 实现都有一个公共的克隆方法。但是,将它包含在 Collection 的所有实现中并没有真正的意义。这是因为 Collection 是一种抽象表示。重要的是执行。
在处理实际实现时,克隆或序列化的语义和含义会发挥作用;所以具体的实现应该决定它应该如何被克隆或序列化,或者即使它可以被克隆或序列化。
因此,在所有实现中强制克隆和序列化实际上不太灵活且限制性更强。具体的实现应该决定它是否可以被克隆或序列化。

5.为什么 Map 接口不扩展 Collection 接口?

尽管 Map 接口及其实现是 Collections Framework 的一部分,但 Map 不是集合,集合也不是 Map。因此 Map 扩展 Collection 没有意义,反之亦然。
如果 Map 扩展了 Collection 接口,那么元素在哪里?Map 包含键值对,它提供了检索键或值列表作为集合的方法,但它不适合“元素组”范式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值