Java Collection Java集合总结

集合总结

总览:


详细:


LinkedList: 链表,有list, queue, deque的接口。unsynchronized

ArrayList: 自适应大小数组,有list接口。unsynchronized

Vector: 手动适应大小数组,有list接口。synchronized。如果不要求thread-safe,请使用ArrayList.

Stack:  基于Vector,推荐使用 Deque<Integer> stack = new ArrayDeque<Integer>()

ArrayBlockingQueue: 基于数组,用int作为count, 添加和取用一个锁。大小固定

LinkedBlockingQueue: 基于链表,用AtomicInteger作为count, 有添加锁和取锁。大小可变,默认大小是int最大值

LinkedBlockingDequeue: 双向的LinkedBlockingQueue.

ConcurrentLinkedQueue: 节点操作线程安全,不同节点可被不同线程修改。没有锁。

PriorityQueue: 最小堆,保持自然顺序。unsynchronized.

PriorityBlockingQueue: blocking的PriorityQueue

HashSet: 集合. unsynchronized

LinkedHashSet: 保持插入顺序的HashSet. unsynchronized.

TreeSet: 保持自然顺序的集合,首位最小. 基于TreeMap(红黑树) . unsynchronized

HashMap: 自适应大小和负载度(load factor)。unsynchronized

LinkedHashMap: 保持插入顺序的HashMap。unsynchronized

ArrayDeque: 自适应大小Deque,作为stack比Stack快,作为Queue比LinkedList快,方法和LinkedList一样。unsynchronized

队列和栈

Queue Interface
 报异常返回值
插入add(e)offer(e)
删除remove()poll()
查看element()peek()

Deque Interface
 报异常返回值
插入addFirst(e) / addLast(e)offerFirst(e) / offerLast(e)
删除removeFirst() /  removeLast()pollFirst() / pollLast()
查看getFirst() / getLast()peekFirst() / peekLast()


Deque as Queue
QueueDeque
add(e)addLast(e)
offer(e)offerLast(e)
remove()removeFirst()
poll()pollFirst()
element()getFirst()
peek()peekFirst()


Deque as Stack
StackDeque
push(e)addFirst(e)
pop()removeFirst()
peek()peekFirst()


BlockingQueue Interface
 报异常返回值阻塞超时
插入add(e)offer(e)put(e)offer(e,time,unit)
删除remove()poll()take()poll(time, unit)
查看element()peek()  


具体集合方法

LinkedList
add(index, item)在指定位置插入元素
addFirst(e) / addLast(e)插入列表首 / 尾
offerFirst(e) / offerLast(e)插入列表首/ 尾
addAll([index], collection)(在指定位置)插入集合
get(index)随机访问
getFirst() / getLast()访问列表首 / 尾
peekFirst() / peekLast()访问列表首 / 尾
indexOf(e)获取元素首现位置
lastIndexOf(e)获取元素尾现位置
pollFirst() / pollLast()弹出列表首/尾
remove()弹出列表首
remove(e)删除指定元素
remove(index)删除指定位置元素
removeFirst() / removeLast()弹出列表首 / 尾
removeFirstOccurrence(e)删除元素首次出现
removeLastOccurrence(e)删除元素尾次出现
set(index, e)更改指定元素
contains(e)元素是否存在
pop() / push(e)stack 弹出 / 压栈
clear()清空
toArray()生成数组
listIterator(index)list指定位置始迭代器
descendingIterator()deque反向迭代器


ArrayList
add(index, item)在指定位置插入元素
addAll([index], collection)(在指定位置)插入集合
get(index)随机访问
indexOf(e)获取元素首现位置
lastIndexOf(e)获取元素尾现位置
remove(e)删除元素首次出现
remove(index)删除指定位置元素
removeAll(collection)删除集合元素
removeRange(start, end)删除start到end-1的元素
set(index, e)更改指定元素
contains(e)元素是否存在
isEmpty()是否为空
retainAll(collection)是否含有集合
subList(start, end)生成子list,start到end-1
ensureCapacity(min)增加容量,至少容纳min个
trimToSize()缩减容量到当前大小
clear()清空
toArray()生成数组
iterator()迭代器
listIterator([index])(list指定位置)迭代器


Stack
empty()判断是否为空
peek()查看栈顶元素
pop()出栈
push()入栈
search(Object)查询,栈顶是1


LinkedBlockingQueue
offer(e,[time, unit])入队,可等待一段时间
put(e)入队,等待
poll([time,unit])出队,可等待一段时间
take()出队,等待
contains(e)是否存在元素
drainTo(collection, [num])将(num个)元素转移到另个集合
remainingCapacity()剩余容量
clear()清空atomically
toArray生成数组


HashSet
add(e)添加元素
contains(e)是否存在元素
isEmpty()是否为空
clear()清空
remove(e)删除

 

HashMap
put(key, value)添加键值对
get(key)获取key对应的value
containsKey(key)是否存在key
containsValue(value)是否存在value
isEmpty()是否为空
remove(key)删除键值对
entrySet()键值对集合
keySet()key集合
values()value集合
clear()清空

数组

Arrays
asList()由数组生成list
binarySearch(T[], [from, to], key,[comparator])二分查找
copyOfRange(dest[], from, to)复制到新数组
equals(arrayA, arrayB)比较元素一致
fill(array[], [from, to], value)填充值
sort(T[], [from, to], [ comparator])排序
toString(array[])内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值