当前位置: 代码迷 >> 综合 >> Java 集合 (2) -- List 接口 Set 接口 Queue 接口 Deque 接口
  详细解决方案

Java 集合 (2) -- List 接口 Set 接口 Queue 接口 Deque 接口

热度:61   发布时间:2023-12-16 13:23:13.0

文章目录

    • 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 个方法:

  1. void add(int index,E element):在指定位置添加一个元素
  2. boolean addAll(int index, Collection<? extends E> c):向指定位置添加集合
  3. E get(int index):获取指定元素
  4. ListIterator listIterator():返回一个列表迭代器实现类对象,该迭代器可实现List集合的逆序遍历
  5. E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素
  6. E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素
  7. int indexOf(Object o):获取指定元素的第一次出现的位置
  8. int lastIndexOf(Object o):获取指定元素最后一次出现的位置
  9. 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. 常用方法

  1. boolean add (E e ):如果 set 中尚未包含指定元素,则添加指定元素
  2. void clear ():从此set中移除所有的元素
  3. boolean contains( Object o):如果此 set包含指定元素 ,则返回true
  4. boolean remove( Object o):如果指定元素存在于此set中,则将其移除
  5. int size():返回此set中的元素的数量(set的容量)

3. Queue 接口

1. 简介

Queue 是一种叫做队列的数据结构,队列是遵循着一定原则的入队和出队操作的集合,队列不允许插入 null 元素,一般来说,入队是在队列尾添加元素,出队是在队列头删除元素,但是,不是所有的队列都是如此,比如优先级队列的原则就稍微有些不同。

Queue 接口有 8 个常用的实现类:PriorityQueue 、ArrayBlockingQueue 、LinkedBlockingQueue 、SynchronousQueue 、PriorityBlockingQueue 、ConcurrentLinkedQueue 、LinkedTransferQueue 、DelayQueue。

2. 常用方法

  1. boolean add(E e):插入一个元素到队列中,失败时返回 IllegalStateException (队列容量不够)
  2. E element():返回队列头部的元素
  3. boolean offer(E e):插入一个元素到队列中,失败时返回false
  4. E peek():返回队列头部的元素,队列为空时返回null
  5. E poll():返回并移除队列的头部元素,队列为空时返回null
  6. E remove():返回并移除队列的头部元素

4. Deque 接口

1. 简介

Deque 继承了 Queue 接口,是一种特殊的队列,它的两端都可以进出元素,故而得名双端队列

Deque 接口的实现类主要有:ArrayDeque 、LinkedList。

2. 常用方法

  1. boolean add(E e):将新元素添加到队列的尾端(当不超过队列的容量时)
  2. void addFirst(E e):将新元素添加到队列的头部
  3. void addLast(E e):将新元素添加到队列的尾部
  4. boolean contains(Object o):双端队列是否含有对象o
  5. Iterator<E> descendingIterator():倒序返回队列的迭代器
  6. E element():返回队列的头部元素
  7. E getFirst():获取头部元素
  8. E getLast():获取尾部元素
  9. Iterator<E> iterator():迭代队列
  10. boolean offer(E e):将新元素插入到队列尾部
  11. boolean offerFirst(E e):将新元素添加到队列的头部
  12. boolean offerLast(E e):将新元素添加到队列的尾部
  13. E peek():返回队列的头部元素
  14. E peekFirst():获取头部元素
  15. E peekLast():获取尾部元素
  16. E poll():返回并移除队列的头部元素
  17. E pollFirst():获取并移除头部元素
  18. E pollLast():获取并移除尾部元素
  19. E pop():将一个元素出栈
  20. void push(E e):将一个元素压入栈
  21. E remove():移除队列的头部元素
  22. boolean remove(Object o):移除队列中第一个o
  23. E removeFirst():移除队列的头部元素
  24. E removeLast():移除队列的尾部元素
  25. boolean removeFirstOccurrence(Object o):移除队列中第一个o
  26. boolean removeLastOccurrence(Object o):移除队列中最后一个o
  27. int size():返回队列元素个数
  相关解决方案