java集合框架随笔

1.Collection常用接口及子类

Collection 表示一组对象,不包括Map

2.Map :将键映射到值的对象。

3.面试常见问题

    3.1 ArrayListVector的区别

       相同点:这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复。

      不同点:(1)同步性:Vector是线程安全的,,而ArrayList是线程序不安全的。(2)数据增长:ArrayList与Vector都有一个初始的容量大小。Vector增长原来的一倍,ArrayList增加原来的0.5倍。

   3.2 HashMapHashtable的区别

     1.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。     

     2.HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。     

     3.Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。 

     4.Hashtable的方法是Synchronize的,而HashMap不是

   3.3 为什么重写对象的equals()方法,就必须重写hashCode()方法

         两个对象若相同,则HasCode一定相同;HashCode相同,但对象不一定相同。   

         HashMap中判断key值是否重复的步骤,是先判断对象的hashCode是否已存在,该hashCode不存在,则可以存入;hashCode已存在,则再利用equals方法判断是否重复。故如果重写了equals()方法,而没有重写HashCode()方法,理论上是重复值,但却可以存入,属于错误操作。                                                                                                                                                      

猜你喜欢

转载自blog.csdn.net/guaituo0129/article/details/86629929