JAVA集合Collection方法(List,Set,Map,Queue等)

前言

一、Java List

1.Java List方法

  • int size():获取列表中元素的数量。

  • boolean isEmpty():检查列表是否为空。

  • boolean contains(Object o):如果此列表包含指定的元素,则返回true

  • Iterator iterator():以适当的顺序返回此列表中元素的迭代器。

  • Object [] toArray():以适当的顺序返回包含此列表中所有元素的数组

  • boolean add(E e):将指定的元素追加到此列表的末尾。

  • boolean remove(Object o):从此列表中删除指定元素的第一个匹配项。

  • boolean retainAll(Collection <?> c):仅保留此列表中包含在指定集合中的元素。

  • void clear():从列表中删除所有元素。

  • E get(int index):返回列表中指定位置的元素。

  • E set(int index,E element):用指定的元素替换列表中指定位置的元素。

  • ListIterator listIterator():返回列表中元素的列表迭代器。

  • List subList(int fromIndex,int toIndex):返回指定fromIndex(包含)和toIndex(不包括)之间的此列表部分的视图。返回的列表由此列表支持,因此返回列表中的非结构更改将反映在此列表中,反之亦然。

  • default void replaceAll(UnaryOperator 运算符):将此列表的每个元素替换为将运算符应用于该元素的结果。

  • default void sort(Comparator c):根据指定的Comparator引发的顺序对此列表进行排序。

  • default Spliterator spliterator():在此列表中的元素上创建Spliterator。

  • LinkedList是基于链表实现的,从源码可以看出是一个双向链表。除了当做链表使用外,它也可以被当作堆栈、队列或双端队列进行操作。

二、Java Set

1. 重要特点

  1. Java Set接口是Java Collections Framework的成员。
  2. Set不允许出现重复元素-----------无重复
  3. Set不保证集合中元素的顺序---------无序
  4. Set允许包含值为null的元素,但最多只能有一个null元素。

2.Java Set方法

  • boolean add(E e):如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。

  • boolean addAll(Collection<? extends E> c):如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中(可选操作)。

  • void clear():移除此 set 中的所有元素(可选操作)。

  • boolean contains(Object o) :如果 set 包含指定的元素,则返回 true。

  • boolean containsAll(Collection<?> c) //如果此 set 包含指定 collection 的所有元素,则返回 true。

  • boolean equals(Object o) :比较指定对象与此 set 的相等性。

  • int hashCode() :返回 set 的哈希码值。

  • boolean isEmpty():如果 set 不包含元素,则返回 true。

  • Iterator iterator():返回在此 set 中的元素上进行迭代的迭代器。

  • boolean remove(Object o) :如果 set 中存在指定的元素,则将其移除(可选操作)。

  • boolean removeAll(Collection<?> c) :移除 set 中那些包含在指定 collection 中的元素(可选操作)。

  • boolean retainAll(Collection<?> c) :仅保留 set 中那些包含在指定 collection 中的元素(可选操作)。

  • int size() :返回 set 中的元素数(其容量)。

  • Object[] toArray() :返回一个包含 set 中所有元素的数组。

  • T[ ] toArray(T[ ] a):返回一个包含此 set 中所有元素的数组;返回数组的运行时类型是指定数组的类型。

二、Java Stack

1.Java Stack方法

  • Object push(Object element):入栈。

  • Object pop():移除并返回堆栈的顶部元素。如果我们在调用堆栈为空时调用pop(),则抛出’EmptyStackException’异常。

  • Object peek():返回堆栈顶部的元素,但不删除它。

  • boolean empty():如果堆栈顶部没有任何内容,则返回true。否则,返回false。

  • int search(Object element):确定对象是否存在于堆栈中。如果找到该元素,它将从堆栈顶部返回元素的位置。否则,它返回-1。

三、 Java Queue

1. 重要特点

  1. Queue 实现通常不允许插入 null 元素

  2. 队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和
    LIFO队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头
    都是调用 remove() 或 poll() 所移除的元素。在FIFO
    队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。

  3. JDK中并发队列提供了两种实现,一种是高性能队列ConcurrentLinkedQueue,一种是阻塞队列BlockingQueue(7种阻塞队列),两种都继承自Queue。

  4. JDK中队列有两大类,一类是双端队列,一类是单端队列。

2.Java Queue方法

  • boolean offer(E e):将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于add(E),后者可能无法插入元素,而只是抛出一个异常。

  • boolean add(E e):将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回true,如果当前没有可用的空间,则抛出 IllegalStateException。

  • E poll():获取并移除此队列的头,如果此队列为空,则返回 null。

  • E remove():获取并移除此队列的头。

  • E peek():获取但不移除此队列的头;如果此队列为空,则返回 null。

  • E element():获取,但是不移除此队列的头。

四. Java Map

1. Java Map 方法

  • void clear():从此映射中移除所有映射关系(可选操作)。

  • boolean containsKey(Object key):如果此映射包含指定键的映射关系,则返回 true。

  • boolean containsValue(Object value):如果此映射将一个或多个键映射到指定值,则返回 true。

  • Set<Map.Entry<K,V>> entrySet():返回此映射中包含的映射关系的 Set 视图。

  • boolean equals(Object o):比较指定的对象与此映射是否相等。

  • V get(Object key) :返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

  • int hashCode():返回此映射的哈希码值。

  • boolean isEmpty():如果此映射未包含键-值映射关系,则返回 true。

  • Set keySet():返回此映射中包含的键的 Set 视图。 V

  • put(K key, V value):将指定的值与此映射中的指定键关联(可选操作)。

  • void putAll(Map<?extends K,? extends V> m) :从指定映射中将所有映射关系复制到此映射中(可选操作)。

  • V remove(Object key):如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

  • int size():返回此映射中的键-值映射关系数。

  • Collection values():返回此映射中包含的值的 Collection 视图。

五、Java Iterator

1.Java Iterator方法

  • boolean hasNext ( ):如果仍有下一个元素可以迭代,则返回true。

  • E next ( ):返回迭代的下一个元素。

  • void remove ( ):从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)

发布了233 篇原创文章 · 获赞 254 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_44485744/article/details/104879708