Java集合(面试题)

89 阅读1分钟

1. ArrayList和Vector的区别
共同点:

这两个类都实现了List接口,它们都是有序的集合(存储有序),底层是数组。我们可以按位置索引号取出某个元素,允许元素重复和为null

区别:

• 同步性: ArrayList是非同步的 Vector是同步的 即便需要同步的时候,我们可以使用Collections工具类来构建出同步的ArrayList而不用Vector
• 扩容大小: Vector增长原来的一倍,ArrayList增长原来的0.5倍

2. HashMap和Hashtable的区别
共同点:

从存储结构和实现来讲基本上都是相同的,都是实现Map接口~

区别:
• 同步性:
 HashMap是非同步的
 Hashtable是同步的,需要同步的时候,我们往往不使用Hashtable,而使用ConcurrentHashMap
• 是否允许为null:
 HashMap允许为null
 Hashtable不允许为null
• contains方法 Hashtable有contains方法

    HashMap把Hashtable的contains方法去掉了,改成了containsValue和containsKey
继承不同:
    HashMap
    extends AbstractMap
    public class Hashtable
    extends Dictionary