《疯狂Java》——集合学习

Set:无序不重复 实现类(HashSet、TreeSet 、 EnumSet 都是线程不安全的)
HashSet 特点: 1.不保证元素的排列顺序
2.不是同步的
3.集合元素可以为null
4.判断两个元素相同的标准,equals方法比较相等;两个对象的hashCode()方法返回值相等。
子类LinkedHashSet

      TreeSet特点:1.SortSet的唯一子类
                           2.元素始终处于排序状态(自然排序即升序)
                           3.将对象(必须实现Comparable接口,不然会报错ClassCastException)添加进TreeSet集合
                           4.判断对象不相等的标准:两个对象equals返回false或者是compleTo比较没有返回0

           注意:当某个Set需要保持排序就用TreeSet,否则都用HashSet
      EnumSet类:

List:有序可重复
LinkedList

       ArrayList(线程不安全,内部数组实现,利于随机访问,不利于插入删除) 

           注意:Arrays中有个方法asList(Object i)可以把一个数组或者指定个数的对象转换成一个Arrays内部类的对象,它的长度是固定的,不能够执行add或者是
                      remove操作,否则会报UnsupportedOperationException异常。 

       Vector(线程安全,内部数组实现,利于随机访问,不利于插入删除)
               Vector子类:  Stack(栈结构,先进后出)

Map:键值对

Queue:队列 不允许随机访问队列中的元素
LinkedList(实现了List和Deque两个接口,内部链表实现,不利于随机访问,利于插入删除 )

           PriorityQueue  不允许插入null元素
                          两种排序方式: ①自然排序(集合中元素必须实现Comparable接口)
                                                  ②定制排序(传入Comparetor对象负责排序)

Conllections: 排序、查找、替换

                获取线程安全实现版本
                Collection  c = Collection.synchronizedCollection(new ArrayList());
                List list = Collection.synchronizedList(new ArrayList());
                Set  s = Collection.syncronizedSet(new HashSet());
                Map m = Collections.syncronizedMap(new HashMap());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值