集合【第二篇 不同集合的讨论和注意要点】

不同接口下的不同集合【Collection(List 、set) 、Map】

collection:属于单列集合
list集合中常用(ArrayList、LinkedList、vector) 【有序(下标),内容可重复】
set   集合中常用(HashSet、TreeSet...) 【无序,内容不可重复】
     集合的性质
    ArrayList、LinkedList:属于不安全线程型的集合 (安全的效率低,非安全的效率高)
ArrayList :本质是(内部)由一个Object数组构成的,所以随机查找效率高,删、舔、改、效率低
LinkedList: 内部是链表形式存在的,所以跟ArrayList相反,删、舔、改效率高,随机查找效率低
  vector:属于安全线程的集合(效率低)
因为安全性考虑(一段代码同时只能有一个线程来操作 不然中间过程可能会产生不可预制的结果),所以
效率很低
 
要点
        使用set清除list多余元素 由于set的不可重复性,可以把list集合的内容用addAll()方法传给set集合,自然它就把重复项清除了
ArrayList详解  ①内部由Object数组组成,一开始它有一个默认值EMPTY_ELEMENTDATA=10;(object数组的初始length,如果超出默认值,它会新建一个数组(长度为之前(length*3/2) +1)这个长度的新数组),将之前数组的值转移进去,然后继续添加
       ②new ArrayList()时是可以传入int值的,来定义初始size。【其实我之前是很疑惑,为什它会自动分配初始值,如果你也有同样的问题(交个朋友吧),请看我的分析】:因为有时候知道传入的数据量很大,传入集合的size,可以很大程度上提高它的效率(①中已经说过,如果不够大,它会不停的新建数组,分配长度,来传值,而一但你的初值大,那么就可以减少新建数组的数量,提高程序的效率)

map:属于双列集合
                map     集合中常用(Hashtable、HashMap、Properties)【它是以键(key),对应一个值(vaule)来组成的集合】 键和值一一对应
一个很容易混淆的要点
put(Object key,Object value)      返回值:Object
这里返回的object是接的内容,是key所对应的前一个值的内容,如果这个key之前没又对应的值,那么第一次返回内容为null【如下图】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值