java8-集合和列表,关联

Hierarchy of Collection Framework

  • List
    • ArrayList
    • LinkedList
    • Vector
    • Stack
  • Queue
    • PriorityQueue
    • ArrayDeque
  • Set
    • HashSet
    • LinkedHashSet
    • TreeSet

ArrayList

  • 有顺序的列表,动态数组,元素可随机访问、增加、删除。
  • 可以包含重复元素。

元素操作

  • add(a-element) 添加元素到末尾
  • add(index, a-element) 插入元素到指定位置
  • addAll(Collection<? extends E> c)
  • addAll(index, Collection<? extends E> c)

  • get(index) 获取

  • remove(index) 删除
  • removeRange(int fromIndex, int toIndex)
  • remove(Object o)
  • removeAll(Collection<?> c)

  • clear() 清空所有元素
  • size() 元素数目

  • subList(int fromIndex, int toIndex) 获取子列表
  • toArray(new T[0]) 转换为数组

搜索

  • contains(Object o) 是否包含目标对象,通过 o.equals(e) 比较。
  • indexOf(Object o)
  • lastIndexOf(Object o)

排序

  • Collections.sort(a-arraylist)
1
2
3
4
5
6
7
8
ArrayList<String> a = new ArrayList<String>();
a.add("111");
a.add("222");
a.add("333");
System.out.println(a);
a.remove(1);
System.out.println(a);
System.out.println("a[0] = " + a.get(0));

iterator 遍历

1
2
3
4
Iterator<String> it = arraylist.iterator();
while(it.hasNext()) {
    System.out.println(it.next());
}

LinkedList

Vector

和 ArrayList 类似,但是包含更多不在Collections 的方法。

Stack

  • push(a-element)
  • pop()

队列 Queue

PriorityQueue

  • 队列,先进先出。
  • 禁止保存 null

  • peek() 返回队首元素,但是不删除它
  • poll() 返回队首元素,删除它
  • toArray

双向队列 Deque

  • 继承自 Queue
  • 队列2边都可以操作。

ArrayDeque

  • add(e) / addLast(e) 队尾入队
  • addFirst(e) 队首入队
  • getFirst() 出队
  • getLast() 队尾出队

  • peek
  • peekFirst
  • peekLast
  • poll
  • pollFirst
  • pollLast

  • clear()

Set

  • 元素唯一
  • 无序

HashSet

  • add(e)
  • remove(e)

  • size()
  • isEmpty()
  • clear()

  • contains(Object o)

LinkedHashSet

  • 允许 null 元素
  • 有序(插入顺序)

SortedSet

  • 和 Set 类似,除了支持排序。

TreeSet

  • 比 HashSet 更快些,使用树作为存储结构。

  • add(e)
  • remove(obj)

  • first()
  • last()
  • pollFirst()
  • pollLast()
  • ceiling(e) 返回 <= e ,最近的元素
  • floor(e) 返回 >= e ,最近的元素
  • lower(e) 返回 < e ,最近的元素
  • higher(e) 返回 > e ,最近的元素

  • headSet(E toElement)
  • headSet(E toElement, boolean inclusive)
  • tailSet(E fromElement)
  • tailSet(E fromElement, boolean inclusive)

  • iterator()
  • descendingIterator()

  • isEmpty()
  • size()

  • contains(Object o)
  • clear()