java基础知识---集合

来源:互联网 发布:access与数据透视表 编辑:程序博客网 时间:2024/06/05 02:16
集合框架面试题 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 不 可以。


0 0