集合中的面试题

来源:互联网 发布:极乐净土秀太捏脸数据 编辑:程序博客网 时间:2024/05/28 11:50
1.HashMap和Hashtable区别:
       -Hashtable:线程安全,效率低。不允许null键和null值
 
       -HashMap:线程不安全,效率高。允许null键和null值
 

2.List,set,Map区别:
       -List:有序,可重复
       -set:无序,唯一
             添加:add   遍历:迭代器或增强版for
       -Map:Map的键唯一,值可重复,Map适合储存键值对的数据
             添加:put    遍历:键


3.ArrayList,Vector,LinkedList存取元素性能和特点:


       |--ArrayList

               底层数据结构是数组,查询快,增删慢。

               线程不安全,效率高

       |--Vector

               底层数据结构是数组,查询快,增删慢。

               线程安全,效率低

       |--LinkedList

               底层数据结构是链表,查询慢,增删快。

               线程不安全,效率高


4.ArrayList,LinkedList区别:
       -ArrayList:底层数据结构是数组,查询快,增删慢。

                   线程不安全,效率高


       -LinkedList:底层数据结构是链表,查询慢,增删快。

                    线程不安全,效率高



5.Collection和Collections区别:
       -Collection:是单列集合的顶层接口,有子接口List和Set。
 
       -Collections:是针对集合操作的工具类



6.List,set,Map都继承Collection?
       -List和set继承自Collection接口
       -Map接口本身就是一个顶层接口


7.List,Set,Map等接口是否都继承子Map接口?

 
       -List,Set不是继承自Map接口,它们继承自Collection接口
 
       -Map接口本身就是一个顶层接口


8.线程安全集合类与非线程安全集合类 
      -LinkedList、ArrayList、HashSet是非线程安全的,Vector是线程安全的;
      -HashMap是非线程安全的,HashTable是线程安全的;
      -StringBuilder是非线程安全的,StringBuffer是线程安全的。


9.其他特征:
     -List,Set,Map将持有对象一律视为Object型别。
     -Collection、List、Set、Map都是接口,不能实例化。
      继承自它们的 ArrayList, Vector, HashTable, HashMap是具象class,这些才可被实例化。
     -vector容器确切知道它所持有的对象隶属什么型别。vector不进行边界检查。