文章目录
-
- 1. List 接口
-
- 1. 简介
- 2. 方法
- 2. Set 接口
-
- 1. 简介
- 2. 常用方法
- 3. Queue 接口
-
- 1. 简介
- 2. 常用方法
- 4. Deque 接口
-
- 1. 简介
- 2. 常用方法
1. List 接口
1. 简介
List 接口的特点就是:有序的集合,存储元素和取出元素的顺序是一致的;有索引,包含了一些带索引的方法;允许存储重复的元素。
List 接口主要有 5 个常用的实现类:ArrayList 、LinkedList 、Vector 、Stack 、CopyOnWriteArrayList。
2. 方法
List 接口继承了 Collection 接口所有的方法,另外,他还额外提供了 9 个方法:
- void add(int index,E element):在指定位置添加一个元素
- boolean addAll(int index, Collection<? extends E> c):向指定位置添加集合
- E get(int index):获取指定元素
- ListIterator listIterator():返回一个列表迭代器实现类对象,该迭代器可实现List集合的逆序遍历
- E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素
- E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素
- int indexOf(Object o):获取指定元素的第一次出现的位置
- int lastIndexOf(Object o):获取指定元素最后一次出现的位置
List<E>
subList(int fromIndex, int toIndex):截取子集合从fromIndex到toIndex,要头不要尾
2. Set 接口
1. 简介
Set 接口的特点是:不允许放入重复的元素。它使用 equals() 方法进行比较,一般就是通过比较两个对象的值是否相同来区别是否是重复元素。
例如:
Set s = new HashSet();
String s1 = new String("123");
String s2 = new String("123");
s.add(s1);
s.add(s2);System.out.println(s);//结果
[123]
Set 接口有 5 个常用的实现类:HashSet 、LinkedHashSet 、TreeSet 、CopyOnWriteArraySet 、ConcurrentSkipListSet。
2. 常用方法
- boolean add (E e ):如果 set 中尚未包含指定元素,则添加指定元素
- void clear ():从此set中移除所有的元素
- boolean contains( Object o):如果此 set包含指定元素 ,则返回true
- boolean remove( Object o):如果指定元素存在于此set中,则将其移除
- int size():返回此set中的元素的数量(set的容量)
3. Queue 接口
1. 简介
Queue 是一种叫做队列的数据结构,队列是遵循着一定原则的入队和出队操作的集合,队列不允许插入 null 元素,一般来说,入队是在队列尾添加元素,出队是在队列头删除元素,但是,不是所有的队列都是如此,比如优先级队列的原则就稍微有些不同。
Queue 接口有 8 个常用的实现类:PriorityQueue 、ArrayBlockingQueue 、LinkedBlockingQueue 、SynchronousQueue 、PriorityBlockingQueue 、ConcurrentLinkedQueue 、LinkedTransferQueue 、DelayQueue。
2. 常用方法
- boolean add(E e):插入一个元素到队列中,失败时返回 IllegalStateException (队列容量不够)
- E element():返回队列头部的元素
- boolean offer(E e):插入一个元素到队列中,失败时返回false
- E peek():返回队列头部的元素,队列为空时返回null
- E poll():返回并移除队列的头部元素,队列为空时返回null
- E remove():返回并移除队列的头部元素
4. Deque 接口
1. 简介
Deque 继承了 Queue 接口,是一种特殊的队列,它的两端都可以进出元素,故而得名双端队列
Deque 接口的实现类主要有:ArrayDeque 、LinkedList。
2. 常用方法
- boolean add(E e):将新元素添加到队列的尾端(当不超过队列的容量时)
- void addFirst(E e):将新元素添加到队列的头部
- void addLast(E e):将新元素添加到队列的尾部
- boolean contains(Object o):双端队列是否含有对象o
Iterator<E>
descendingIterator():倒序返回队列的迭代器- E element():返回队列的头部元素
- E getFirst():获取头部元素
- E getLast():获取尾部元素
Iterator<E>
iterator():迭代队列- boolean offer(E e):将新元素插入到队列尾部
- boolean offerFirst(E e):将新元素添加到队列的头部
- boolean offerLast(E e):将新元素添加到队列的尾部
- E peek():返回队列的头部元素
- E peekFirst():获取头部元素
- E peekLast():获取尾部元素
- E poll():返回并移除队列的头部元素
- E pollFirst():获取并移除头部元素
- E pollLast():获取并移除尾部元素
- E pop():将一个元素出栈
- void push(E e):将一个元素压入栈
- E remove():移除队列的头部元素
- boolean remove(Object o):移除队列中第一个o
- E removeFirst():移除队列的头部元素
- E removeLast():移除队列的尾部元素
- boolean removeFirstOccurrence(Object o):移除队列中第一个o
- boolean removeLastOccurrence(Object o):移除队列中最后一个o
- int size():返回队列元素个数