core java collection温习

接口

队列接口可以在尾部添加, 在头部删除, 并返回元素个数,
一个队列的最小接口可能类似如下

public interface MyQueue<E> {
    void add(E element);
    E remove();
    int size();
}

队列实现可能有两个, 循环数组跟链表队列

public class MyCircularArrayQueue<E> implements MyQueue<E> {
    private E[] elements;
    private int head;
    private int tail;
    MyCircularArrayQueue(int capacity) {...}
    @Override
    public void add(E e) {...}
    @Override
    public E remove() {...}
    @Override
    public int size() {...}
}
public class MyLinkedListQueue<E> implements MyQueue<E> {
    @Override
    public void add(E e) {...}
    @Override
    public E remove() {...}
    @Override
    public int size() {...}
    public MyLinkedListQueue() {...}
    private Link<E> head;
    private Link<E> tail;
    public class Link<E> {
        private E element;
        private Link<E> next;
    }
}

jdk类库中, 每种数据结构接口通常会对应一个Abstract类,
这是类库设计者将一些通用的实现方法集成了, 方便框架设计

集合类的基本接口是Collection

  • 扩展了Iterable接口,可以支持for each
  • Iterator, next() remove()方法都是操作的迭代器前面的那一个元素,
    这里与InputStream.read()方法有点类似
  • 迭代器访问顺序取决于集合顺序
  • Collection提供了一些需要实现的方法: iterator() add() addAll()
    remove() removeAll() contains() containsAll() retainAll()
    size() isEmpty() equals() clear() toArray()

具体的集合

  • ArrayList
  • LinkedList
    ** 双向链接
  • ArrayDeque
  • HashSet
    ** LinkedHashSet
  • EnumSet
  • PriorityQueue
  • HashMap
    ** LinkedHashMap
  • TreeMap
  • EnumMap
  • WeakHashMap
  • IdentityHashMap
posted on 2018-03-08 22:59  simple_huang  阅读(136)  评论(0编辑  收藏  举报