java集合框架的小结

Collection下面有子接口Set和List
List下面有三个实现类:ArrayList、LinkedList、Vector
ArrayList:线程不安全、效率高、存的是Object,是主要使用的集合
LinkedList:适用于频繁插入、删除操作
Vectory:底层加了同步锁,线程安全的,但如果遇到要求保证线程安全问题,依旧很少使用它,而是使用SynchronizedList(List list) 方法将集合作为参数传入来实现线程安全
集合库容方式
ArrayList、LinkedList、Vectory初始长度是10,扩容倍数为1.5倍、?、2倍
另外:StringBuffer初始长度是16,扩容倍数是2倍
JDK7和jdk8的区别:
ArrayList:7是一开始new ArrayList的时候就实例化,而jdk8是在调用add() 方法是才实例化
Set集合

  • 它的无序是按计算出来的哈希值进行存储的

  • LinkedhashSet:是在每个节点维护了两个变量,用来记录前后两个数据

  • TreeSet:可以按照添加对象的指定属性进行排序:

     	 - 自燃排序:待排序的对象实现Comparable接口,并实现CompaerTo方法
     	 - 定制排序
    

为什么要重写hashCode()、equals()两个方法:
在Set集合中要保证不重复元素,在使用add()方法添加元素时,首先调用HashCode()来比较数据,在比较相同的情况下,再调用equals()方法来进行比较,从而保证唯一性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值