Collection 集合框架小结

Collection 集合框



1:Collection 接口 主要包括 List 接口与Set 接口 这两个接口是我们比较常用的,用来对单个对象进行操作的

        1.List接口,适合遍历与排序,不适合插入与删除操作。 是有序的,允许有重复元素,允许有null值。它主要的实现类有

                       (1)  ArrayList: 此数据结构是基于动态数组来实现的。默认初始数组大小为10,动态扩充的算法是:原来数组
                                   大小+原来数组/2;线程不安全,JDK1.2出现的。

                       (2)  Vector :    此数据结构是基于动态数组来实现的。默认初始数组大小为10,动态扩充算法是:原来数组大
                                   小+增量,如果增量为0,扩充算法为:原来数组大小*2线程安全,JDK1.0的时候就有了。

                        (3) LinkedList:没有默认容量, 此数据结构是基于链表来实现的。相对于前面两个来说更加适合添加和删除,
                                   不适合查找和遍历。线程不安全。  

       2. Set接口,适合插入与删除操作,不适合遍历。是无序的,不允许有重复值,只允许有一个null值。

                        (1) HashSet: 此数据结构是基于动态数组和链表来实现的。默认初始动态数组大小为16,动态扩充算法是:当
                                   存储空间的大小达到加载因子的比例的,原来数组大小*2。线程不安全,适合大数据的存储。通过hashCode()
                                   方法来存储对象的位置。 通过重写equlse()与hashCode()来保证添加的对象是否重复。

(2) LinkedHashSet:是HashSet 的子类,使用链表来维护添加顺序的一个哈希表实现,来解决排序问题   
                        
                        (3)TreeSet:此数据结构是基于二叉树来实现的。是有序的,排序是基于Comparable接口来实现的。线程不安全,
                                   不允许有null值。

2:Map接口 主要包括HashMap,Hashtable,TreeMap,LinkedHashMap。此接口用于对两个对象一起进行操作,一个是key ,
     一个是value。
             
                       (1)HashMap:基于哈希表来实现的,默认容量为16,动态扩充算法是:当存储空间的大小达到加载因子的比例的,
                                  原来数组大小*2。 线程不安全。无序的,允许有null的键和值,JDK1.2引进。其父类是AbstracMap。

                      (2) Hashtable:基于哈希表来实现的,默认容量为11,动态扩充算法是:当存储空间的大小达到加载因子的比例的,
                                 原来数组大小*2+1。线程安全。无序的,允许不允许有null的键和值,JDK1.0引进。其父类是 Dictionary。

                       (3)TreeMap:基于二叉树的红黑平衡树实现的,线程不安全,可以实现自然顺序排序,当key为自定义对象时,该对
                                 象必须实现Comparable接口来比较对象的排序,并且用于检测重复值。


          














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值