Java Collection Java集合总结

来源:互联网 发布:鹿晗唱功 知乎 编辑:程序博客网 时间:2024/05/04 20:53

集合总结

总览:


详细:


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 QueueQueueDequeadd(e)addLast(e)offer(e)offerLast(e)remove()removeFirst()poll()pollFirst()element()getFirst()peek()peekFirst()


Deque as StackStackDequepush(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()  


具体集合方法

LinkedListadd(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反向迭代器


ArrayListadd(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-1ensureCapacity(min)增加容量,至少容纳min个trimToSize()缩减容量到当前大小clear()清空toArray()生成数组iterator()迭代器listIterator([index])(list指定位置)迭代器


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


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


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

 

HashMapput(key, value)添加键值对get(key)获取key对应的valuecontainsKey(key)是否存在keycontainsValue(value)是否存在valueisEmpty()是否为空remove(key)删除键值对entrySet()键值对集合keySet()key集合values()value集合clear()清空

数组

ArraysasList()由数组生成listbinarySearch(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 0
原创粉丝点击