面试到集合(Collection) 这是面试经常要问的题目 必问可以说:
下面我们来讲几个经常问到的题目
说说ArrayList 和Vector 以及 LinkedList 性能和特性?
ArrayList 和Vector 都是以数组方式存储数据 数组大小大于实际存储数据长度
他们有允许 直接序号索引元素 但插入 数据需要移动数组和内存操作
所以索引数据快 但插入慢
由于Vector 是 synchronzied(线程安全) 所以性能比 ArrayList 差
LinkedList 是使用双向 链表存储数据 按序号直接索引数据的时候 需要 对前项和后项的遍历 但是插入数据只需要 记录本项 前项和后项 所以索引数据慢 而插入快
接下来 在说说
Collection 和Collections 这两个的区别?
Collection 是一个集合接口 他的实现类有
List Set
而Collections 是集合类的一个帮助类
他提供了一些静态方法 排序 sort() ,搜索iteratorBinarySearch() 以及线程安全等操作
在讲讲 hashMap 和Hashtable 吧?
hashMap 实现 是JAVA 1.2以后引入的接口 Map
而hashTbale 是继承 Dictionary 实现Map 接口
hashMap 允许 将 空做 键值 而Hashtable 不允许
hashMap 去掉了 containts 改成了containtsValue 及 containtsKey
hashMap 和Hashtable 都是踩用 hash算法
但是由于 Hashtable 是属于 synchronized 所以 性能比hashMap 差
下面我们来讲几个经常问到的题目
说说ArrayList 和Vector 以及 LinkedList 性能和特性?
ArrayList 和Vector 都是以数组方式存储数据 数组大小大于实际存储数据长度
他们有允许 直接序号索引元素 但插入 数据需要移动数组和内存操作
所以索引数据快 但插入慢
由于Vector 是 synchronzied(线程安全) 所以性能比 ArrayList 差
LinkedList 是使用双向 链表存储数据 按序号直接索引数据的时候 需要 对前项和后项的遍历 但是插入数据只需要 记录本项 前项和后项 所以索引数据慢 而插入快
接下来 在说说
Collection 和Collections 这两个的区别?
Collection 是一个集合接口 他的实现类有
List Set
而Collections 是集合类的一个帮助类
他提供了一些静态方法 排序 sort() ,搜索iteratorBinarySearch() 以及线程安全等操作
在讲讲 hashMap 和Hashtable 吧?
hashMap 实现 是JAVA 1.2以后引入的接口 Map
而hashTbale 是继承 Dictionary 实现Map 接口
hashMap 允许 将 空做 键值 而Hashtable 不允许
hashMap 去掉了 containts 改成了containtsValue 及 containtsKey
hashMap 和Hashtable 都是踩用 hash算法
但是由于 Hashtable 是属于 synchronized 所以 性能比hashMap 差