重庆快乐十分

集合框架面试题

集合框架

1。 ArrayList 和Vector 的区别。

这两个类都实现了List 接口(List 接口继承了Collection 接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是HashSet 之类的集合的最大不同处,HashSet 之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素(本来题目问的与hashset 没有任何关系,但为了说清楚ArrayList 与Vector 的功能,我们使用对比方式,更有利于说明问题)。接着才说ArrayList 与Vector 的区别,这主要包括两个方面。

同步性:

Vector 是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList 是线程序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。

备注:对于Vector&ArrayList、Hashtable&HashMap,要记住线程安全的问题,记住Vector 与Hashtable 是旧的,是java 一诞生就提供了的,它们是线程安全的,ArrayList 与HashMap 是java2 时才提供的,它们是线程不安全的。所以,我们讲课时先讲老的。

相关文档
上海快3开奖 青海福彩网 海南福彩中心 重庆快乐十分 上海11选5开奖 浙江体彩网 北京福彩网 天津福彩快乐十分 北京福彩网 上海福彩网