文档介绍:精品资料
Java 集合框架为 Java 编程语言的基础,也是 Java 面试中非常重要的一个知识
点。
这里,我列出了一些关于 Java 集合的重要问题和答案。
集合框架是什么?说出一些集合框架的长处?
每种编程语言中都有集合。 最初的 Java 版本号包括几种集合类: Vector 、 Stack 、
HashTable 和 Array 。
随着集合的广泛使用。 提出了囊括全部集合接口、实现和算法的集合框
架。
在保证线程安全的情况下使用泛型和并发集合类, Java 已经经历了非常久。它
还包括在 Java 并发包中,堵塞接口以及它们的实现。
集合框架的部分长处例如以下:
( 1)使用核心集合类减少开发成本,而非实现我们自己的集合类。
(2)随着使用经过严格测试的集合框架类。代码质量会得到提高。
(3)通过使用JDK附带的集合类,能够减少代码维护成本。
( 4)复用性和可操作性。
. 集合框架中的泛型有什么长处?
引入了泛型。全部的集合接口和实现都大量地使用它。泛型同意我们为
集合提供一个能够容纳的对象类型, 因此。 假设你加入其他类型的不论什么元素,
它会在编译时报错。这避免了在执行时出现 ClassCastException 。由于你将会
在编译时得到报错信息。
泛型也使得代码整洁,我们不须要使用显式转换和 instanceOf 操作符。
它也给执行时带来长处。由于不会产生类型检查的字节码指令。
.Java 集合框架的基础接口有哪些?
精品资料
o Collection 为集合层级的根接口。
一个集合代表一组对象。这些对象即为它的元素。
Java 平台不提供这个接口不论什么直接的实现。
o Set 是一个不能包括反复元素的集合。
这个接口对数学集合抽象进行建模。被用来代表集合,就如一副牌。
o List 是一个有序集合。能够包括反复元素。
你能够通过它的索引来粉问不论什么元素。 List更像长度动态变换的数组。
o :每一个 key 最多仅仅能映射一个 value 。
一些其他的接口有 Queue、 Dequeue、 SortedSet 、 SortedMap 和 ListIterator 。
. 为何 Collection 不从 Cloneable 和 Serializable 接口继承?
Collection 接口指定一组对象,对象即为它的元素。怎样维护这些元素由
Collection 的详细实现决定。
比如。 一些如 List 的 Collection 实现同意反复的元素。 而其他的如 Set 就不同
意。非常多 Collection 实现有一个公有的 clone 方法。
然而。把它放到集合的全部实现中也是没有意义的。这是由于 Collection 是一 个抽象表现。重要的是实现。
当与详细实现打交道的时候, 克隆或序列化的语义和含义才发挥作用。 所以, 详 细实现应该决定怎样对它进行克隆或序列化,或它能否够被克隆或序列化。
在全部的实现中授权克隆和序列化,终于导致更少的灵活性和很多其他的限制。
特定的实现应该决定它能否够被克隆和序列化。
.为何Map接口不继承 Collection 接口 ?
精品资料
虽然Map接口和它的实现也是集合框架的一部分。 但Ma/是集合。集合也不是
Map。
因此,Map继承Collection 毫无意义,反之亦然。
假设Map继承Collection 接口,那么元素去哪儿? Mapt!括key-value 对,它
提供抽取 key 或 value 列表集合的方法,可是它不适合 “一组对象 ”规范。
terator 是什么?
Iterator 接口提供遍历不论什么 Collection 的接口。
我们能够从一个 Collection 中使用迭代器方法来获取迭代器实例。迭代器代替
了 Java 集合框架中的 Enumeration 。 迭代器同意调用者在迭代过程中移除元素。
Enumeration 和 Iterator 接口的差别?
Enumeration 的速度是 Iterator 的两倍,也使用更少的内存。
Enumeration 是非常基础的, 也满足了基础的须要。 可是, 与 Enumeration 相比,
Iterator 更加安全,由于当一个集合正在被遍历的时候。它会阻止其他线程去
改动集合。
迭代器代替了 Java 集合框架中的 Enumeration 。
迭代器同意调用者从集合中移除元素,而 Enumeration