您的位置:首页 > 编程语言 > Java开发

java基础知识---集合

2014-10-20 17:08 204 查看
集合框架面试题 1.
Collection 和 Collections 的区别。 的区别。
Collections 是个 java.util
下的类,它包含有各种有关集合操作的静态方法。

Collection 是个 java.util
下的接口,它是各种集合结构的父接口 2. List, Set, Map 是否继承自 Collection 接口
接口?

List,Set 是 Map 不是

3.ArrayList 和 Vector 的区别。 . 的区别。

一.同步性: Vector 的大多数方法具有同步能力,所以 Vector 是线程安全的,也就是说 Vector 是同步的。 除了两个只用于串行化的方法, 没有一个 ArrayList 的方法具有同步执行的能力。 所以 ArrayList 不是线程安全的,不是同步的 。

二.执行效率:因为 Vector 是同步的,而 ArrayList 不是同步的。所以 ArrayList 的执 行效率要比 Vector 高。

三.数据增长: Vector 和 ArrayList 都支持可随需要而增长的动态数组。能够动态的增加 或减少其大小。当需要增长时,Vector 默认增长为原来一培,而 ArrayList 却是原来的一半 。 四.如果使用中没有特别规定要使用同步,就应该选中 ArrayList。选用 ArrayList 比选 用 Vertor 具有更快的速度和更高的性能。

4.为什么 ArrayList 可以代替 Vector ? .

可以使用 Collections 中提供的同步方法将 ArrayList 转换为同步的 Collections.synchronizedList(List<T> list) 这样 ArrayList 就可以替换 Vector 了。

5.ArrayList 和 LinkedList 的区别? . 的区别?

在"集合框架"中有两种常规的
List 实现:ArrayList 和 LinkedList。使用两种 List 实的 哪一种取决于您特定的需要。 如果要支持随机访问, 而不必在除尾部的任何位置插入或除去 元素,那么,ArrayList 提供了可选的集合。但如果,您要频繁的从列表的中间位置添加和
除去元素,而只要顺序的访问列表元素,那么,LinkedList 实现更好。 ArrayList 和 LinkedList 的大致区别:

1. ArrayList 是实现了基于动态数组的数据结构,LinkedList 基于链表的数据结构。使用 get 方法访问列表中的任意一个元素时(random access),它的速度要比 LinkedList 快。

2.对于随机访问 get 和 set, ArrayList 绝对优于 LinkedList, 因为 LinkedList 要移动指针。

3.对于新增和删除操作 add 和 remove,LinedList 比较占优势,因为 ArrayList 要移动数 据。

6.HashMap 和 Hashtable 的区别 .

一. 同步性:Hashtable 的大多数方法都是同步方法,所以 Hashtable 是线程安全的。 HashMap 的方法不具备同步能力,所以 HashMap 不是线程安全的。

二.执行效率: 因为 Hashtable 是同步的,所以执行效率比较底。而 HahsMap 不是同步 的,所以执行效率要比 Hashtable 执行效率快。

三. 也可以使用 Collections. synchronizedMap(Map<K,V> m)将 HashMap 转换为线程安全 的。 四.如果使用中没有特别规定要使用同步,就应该选中 HashMap。选用 HashMap 比选用 Hashtable 具有更快的速度和更高的性能。 五.值:只有 HashMap 可以让你将空值作为一个表的条目的
key 或 value . HashTable 不 可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: