java Collection学习

java Collection理解

      我一直不太理解java里面的集合架构,今天花了一些时间对其进行全面的学习。

     Collection是一个接口,它是集合的祖宗。

     集合和数组最大的区别是集合只能存储引用数据类型,不能存储基本数据类型;还有就是集合的长度是可变的,数组是不可变的。

     java Collection 架构是:                                                         

                                                                                          Collection

                                                                                                  |

                                      --------------------------------------------------------------------------------------------

                                     |                                                                                                              |

                                  List                                                                                                         Set

                   ----------------------------------                                                                    -----------------------------------

                   |                 |                     |                                                                  |                                          |

         ArrayList         Vector            LinkedList                                                HashSet                                 TreeSet  

Collection,List和Set都是接口,List和Set继承Collection。

Collection特点:Collection没有成员变量变量,只有增删改查方法。Collection有下标


List的特点:List是有序集合,可重复,有下标。

ArrayList的特点:它是List的子类,其内部封装了一个可变长度的数组,默认大小为10。由于每个元素都有下标,所以查询速度很快。 当需要查询数据的时候使用最好

Vector的特点:Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,       实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

LinkedList的特点:它也是List的子类,为链表结构,长度可变。由于是链表所以增加与删除第一与最后一个的速度快。 当需要频繁对元素进行增删的时候用最好 


Set的特点:Set是Collection的子类,也是接口,但无序,元素不重复

HashSet的特点:它是Set的子类,底层是hash表结构,所以查询速度比较快

TreeSet的特点:他也是Set的子类,底层是二叉树结构 。进行自然排序,所以存取的数据是有序的


提到集合也会想到Map,它也是接口。它没有继承Collection接口。Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。

它的子类有HashMap和HashTable.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值