interface接口(申明后直接调用方法)-implement实现(不关心)
1. 集合类 基本接口
1 2 3
| Collection{ add(e); iterator迭代器();}
|
1.1 迭代器
1 2 3 4
| iterator{ next(); hasNext(); remove();}
|
next最后会抛出异常,需要先hasNext;
查找一个元素唯一个方法是next;
1.2删除 remove前必须先next,remove删除上次next返回的元素;
1.3 Collection 泛型实用方法,所有都能用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| import java.util.Collection<E>;
Iterator<E> iterator();
int size();
boolean isEmpty();
boolean contains(Object obj);
boolean containsAll(Collection<?> c);
boolean equals(Object other);
boolean add(Object obj);
boolean addAll(Collection<? extends> from);
boolean remove(Object obj);
boolean removeAll(Collection<?> c);
void clear();
boolean retainAll(Collection<?> other); Object[] toArray();
|
1 2 3 4 5 6 7 8
| import java.util.Iterator<E>;
boolean hasNext();
E next();
void remove();
|
2 具体集合
map结尾的类以外都实现了Collection接口,map结尾的类实现map接口
2.1 链表LinkList
数组列表,链表共有
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import java,util.List<E>;
ListIterator<E> listOterator();
ListIterator<E> listOterator(int index);
void add(int i,E element);
Void addAll(int i,Collection<? extends E> elements);
E remove(int i);
E get(int i);
E set(int i,E element);
int indexOf(Object obj);
int lastIndexOf(Object obj);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import java.util.ListIterator;
void add(E newElement);
void set(E newElement);
boolean hasPrevious();
E previous();
int nextIndex();
int prevIndex();
|
链表专属独有
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.LinkedList<E>;
LinkedList();
LinkedList(Collection<? extends E> elements);
void addFirst(E element);
void addLast(E element);
E getFirst();
E getLast();
E removeFirst();
E removeLast();
|
2.2 数组列表 ArryList 类 实现了List接口
List接口(包含的迭代器)描述有顺序的集合,位置重要,两种协议:1get和set随机访问每一个元素只适用于数组列表,2链表只能用迭代器提供的。
Victor同步,多线程同时访问安全;ArryList不同步,多个同时访问不安全。
2.3 散列集 HashSet
无序
HashTable 散列表用链表数组实现,每个列表 桶。
散列表实现的数据类型如HashSet
1 2 3 4 5 6 7 8 9 10
| import java.HashSet<E>;
HashSet();
HashSet(Collection<? extends E> elements);
HashSet(int initialCapacity);
HashSet(int initialCapacity,float loadFactor);
|
1 2 3
| import java.lang.Object;
int hashCode();
|
2.4 树集TreeSet,排序集
有排序的集合(sorted collection)
1 2 3 4 5
| import java.util.TreeSet<E>;
TreeSet();
TreeSet(Collection<? extends E> elements);
|
和比较紧密相关,因为是排序集合
2.5 排序集的 对象比较
1 2 3
| import java.lang.Comparable<T>;
int comparable(T other);
|
1 2 3
| import java.util.Comparator<T>; int comparable(T a,T b);
|
1 2 3 4 5 6 7
| import java.util.SortSet<E>;
Comparator<? super E> comparator();
E first();
E last();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import java.util.NavigableSet<E>;
E higher(E value);
E lower(E value);
E ceiling(E value);
E floor(E value);
E pollFirst();
E pollLast();
Iterator<E> descendingIterator();
|
1 2 3 4 5 6 7
| import java.util.TreeSet<E>;
TreeSet();
TreeSet(Collection<? super E> c);
TreeSet(Collection<? extends E> elements);
|
2.6 队列Queue与双端队列Deque
1 2 3 4 5 6 7 8 9 10 11 12 13
| import java.util.Queue<E>;
boolean add(E element);
boolean offer(E element);
E remove();
E poll();
E element();
E peek();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import java.util.Deque;
void addFirst(E element);
void addLast(E element);
boolean offerFirst(E element);
boolean offerLast(E element);
E removeFist();
E removeLast();
E pollFirst();
E pollLast();
E getFirst();
E getLast();
E peekFirst();
E peekLast();
|
1 2 3 4 5
| import java.util.ArrayDeque;
ArrayDeque();
ArrayDeque(int initialCapacity);
|
2.7 优先级队列PriorityQueue (最小)堆heap
1 2 3 4 5 6 7
| import java.util.PriorityQueue;
PriorityQueue();
PriorityQueue(int initialCapacity);
PriorityQueue(int initialCapacity,Comparator<? super E> c);
|
2.8映射表Map<K,V> 泛型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import java.util.Map<K,V>;
V get(Object Key);
V put(K key,V value);插入,如果存在,取代,返回旧值;键可以为null值不能为null
void putAll(Map<? extends K, ? extends V> entries);
boolean containsKey(Object key);
boolean containsValue(Object value);
set<Map.Entry<K,V> entrySet();
Set<K> KeySet();
Collection<V> values();
|
1 2 3 4 5 6 7
| import java.util.Map.Entry<K,V>;
K getKey();
V getValue();
V setValue(V newValue);
|
1 2 3 4 5 6 7
| import java.util.HashMap<K,V>;
HashMap();
HashMap(int initialCapacity);
HashMap(int initialCapacity,float loadFactor)
|
1 2 3 4 5 6 7
| import java.util.TreeMap<K,V>;
TreeMap(Comparator<? super K> c);
TreeMap(Map<? extends K, extends V> entires);
TreeMap(SortedMap<? extends K, extends V> entires);
|
1 2 3 4 5 6 7
| import java.util.SortedMap<K,V>;
Comparator<? super K> comparator);
K firstKey();
K lastKey();
|
2.9 HashTable Vector enum Stack
hashTable 与hashMap区别不大,不同是HashTable线程安全,同步访问;
vector与ArrayList同理;
1 2 3 4 5
| import java.util.Enumeration<E>;
boolean hasMoreElement();有更多true
E nextElement();hasmore false 会报错
|
1 2 3 4 5
| import java.util.Hashtable<K,V>;
Enumeration<K> Keys();
Enumeration<V> elements();
|
1 2 3
| import java.util.Vector<V>;
Enumeration<E> elements();
|
1 2 3 4 5 6 7
| import java.util.Stack<E>;
E push(E item);
E pop();
E peek();
|
位?
集合框架framework 展示Collection||Map两个接口的混用
2022/3/15