java容器随笔

1.Collection 和 Collections的区别:

   Collection是容器list 和 set的父接口,而Collections是容器的辅助类,这个类是辅助容器的操作,例如排序,搜索。。。。。。等操作。

2.List、Set 、Map

List 和 set都是实现的Collection接口,List是允许重复的,用的是特殊的索引来检索数据,而set不允许有重复的对象(用的是obj.equls()方法来判断是否为同一个对象)。

Map 是以键值对配对的进行数据的存储,可以运行多个 键对应 一个值。

Set 和 Map都含有 hashCode 和 排序树 两种实现方式。

3.ArrayList和 LinkedList

ArrayList可以看作是数据的扩展,每添加一个元素时需要给定一个下标,需要重新对数据元素定义下标,所以ArrayList的添加和删除操作比较缓慢,但是因为存在下标,所以它的查询速度较快。

LinkedList 是基于链表的形式的,链表形式在进行添加和删除操作的时候只需要动指定地方的链,不需要对所有元素进行改动,但是LinkedList在操作查询的时候,是需要移动指针的,所以查询的速度相对来说较慢。

ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 
对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据

4.HashSet TreeSet LinkedHashSet 

    都不允许含有重复对象,但存储的方式不同:

    (1)  Hashset存储方式复杂,但保证了最快的获取速度

   (2)TreeSet按照升序保存对象

   (3)LinkedHashSet按照添加的顺序保存对象,相对于Hashset的存储速度

 

5. 可以使用键来查找对象,类似于数组下标。Map.put(key,value)插入数据,Map.get(key)查找数据。键要求唯一。存储方式不是顺序存储,速度快。不必指定Map的尺寸,因为它自己会自动的调整。

 

   (1)HashMap使用最快的查找技术,存储无顺序。

 

   (2)TreeMap按照比较结果升序保存。

 

   (3)LinkedHashMap按照插入顺序保存键,同时保留HashMap的查询速度。

posted @ 2018-03-23 10:43  酷酷的龙  阅读(80)  评论(0编辑  收藏  举报