Java集合补充

List和array的转换

Object[] array=list.toArray();
Integer[] array =list.toArray(new Integer[3]);

注意,这里的3是指创建array的大小,当数组小的话,会自动扩容为刚好的大小,若是大了,剩下的空间会变为null。可以使用list.size()来刚好创建数组。

ArrayList

Arraylist是线性队列结构,默认为Object类型数组,可以使用泛型指定,优点为查询快

LinkedList

LinkedList为双向链表结构,优点为插入快,删除快

Vector

与ArrayList相同,封装了一个数组,不同的是加了一把同步锁,里面有对象时,重写equals方法

Stack

Stack继承了Vector,是栈的实现,可以使用LinkedList去实现

Set

set为无序不重复集合。

HashMap与Hashtable

HashMap为key与value的键值对,key为set集合,不可重复,value为list,可以重复,他是单线程的,多线程会造成死锁,初始值为16,扩容为2倍。

hashtable是线程完全的,每个方法都加了同步锁,适用于多线程,扩容为2n+1倍

TreeSet 

TreeSet其实就是红黑树,左节点为小值,右节点为大值,内容需排序,不能添加null。

TreeMap

继承于SortMap,内部对key排序,key需实现Comparable接口,比较时依赖key的compareTo或者Conparetor.conpare()方法,相等的时候返回0。

Queue

Queue为队列,PriorityQueue为优先级队列,底层为堆。

Deque

为双向队列,可用于实现Stack,stack为栈,那么我们就只使用队首的方法,不使用队尾的方法。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下水道程序员

你的鼓励将是我奋斗的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值