Java容器常用方法

1. List

java 复制代码
List<E> = new ArrayList<>();
List<E> = new LinkedList<>();
// 增删改查方法
public void add(Object element) //增添元素
public void add(int index,Object element) //在指定位置增添元素
public boolean remove(Object o) //删除指定对象
public Object remove(int index) //删除指定位置的元素
public Object set(int index,Object element) //修改指定位置元素的值
public Object get(int index) //获取指定位置元素
public int indexOf(Object o) //获取指定元素的位置
public boolean contains(Object o) //判断指定元素是否存在
 
// 其他常用方法
public int size() //获取容器中元素个数
public Iterator<E> iterator() //获取迭代器
public void clear() //清空元素

ArrayList适合快速查找元素,LinkedList适合频繁地对列表进行增加或删除元素操作,因此LinkedList类可用于实现堆栈和队列,对此LinkedList类中定义了特定的方法,如下:

java 复制代码
//栈操作
LinkedList<E> list = new LinkedList<>();
public void push(E e) //等价于addFirst()
public E pop() //等价于removeFirst()
public boolean isEmpty() //判断链表是否为空
//队列操作
Queue<E > queue = new LinkedList<>(); || LinkedList<T> list = new LinkedList<>();
public boolean offer(E e) //等价于addLast()
public E peek() //等价于getFirst()
public E poll() //等价于removeFirst()
public boolean isEmpty() //判断链表是否为空

2. Set

java 复制代码
Set<T> st = new HashSet<>();
//增删查方法
public void add(Object element) //增添元素
public boolean remove(object element) //删除元素
public boolean contains(Object o) //判断元素是否存在
// Set的contains和List的Contains的区别:
// HashSet的contains返回true,当且仅当equals返回true并且hashCode返回相等的值
// list.contains(o),等价于list中所有元素调用equals结果的或运算
 
//其他常用方法
public int size() //获取容器中元素个数
public boolean isEmpty() //判断集合是否为空
public Iterator<E> iterator() //获取迭代器
public void clear() //清空元素

3. Map

java 复制代码
Map<K, V> mp = new HashMap<>();
//增删查
public Object put(Object key,Object value) //增添元素
public Object remove(Object key) //删除元素,并返回键对应的值
public Object get(Object key) //获取键对应的值
public Object getOrDefault(Object key, Object defaultValue) //获取键对应的值,没有键,则返回默认值
public boolean containsKey(Object key) //判断指定键是否存在
public boolean containsValue(Object value) //判断指定值是否存在
 
//获取键、值、元素集合
public Collection values() //获取值集合
public Set KeySet() //获取键集合
public Set entrySet() //获取元素集合
 
//其他方法
public int size() //获取容器中元素个数
public boolean isEmpty() //判断容器是否为空
public void clear() //清空元素

4. ArrayDeque

java 复制代码
ArrayDeque<E> deque = new ArrayDeque<>();

// 基本方法
public void addFirst(E e) // 在数组前面添加元素
public void addLast(E e) // 在数组后面添加元素。
public boolean offerFirst(E e) // 在数组前面添加元素,并返回是否添加成功。
public boolean offerLast(E e) // 在数组后面添加元素,并返回是否添加成功。
public E removeFirst() // 删除第一个元素,并返回删除元素的值,如果元素为 null,则抛出异常。
public E removeLast() // 删除最后一个元素,并返回删除元素的值,如果为 null,则抛出异常。
public E pollFirst() // 删除第一个元素,并返回删除元素的值,如果元素为 null,则返回 null。
public E pollLast() // 删除最后一个元素,并返回删除元素的值,如果为 null,则返回 null。
public E getFirst() // 获取第一个元素,如果没有将抛出异常。
public E getLast() // 获取最后一个元素,如果没有将抛出异常。
public E peekFirst() // 获取最后一个元素,如果没有将返回null。
public E peekLast() // 获取最后一个元素,如果没有将返回null。
public int size() // 取队列中元素个数。
public boolean isEmpty() // 判断队列是否为空。
public void clear() // 清空
// 对列操作
public boolean offer(E e) // 在队列尾部添加一个元素,并返回是否成功。
public E peek() // 获取第一个元素,如果返回 null。
public E poll() // 删除队列中第一个元素,并返回该元素的值,如果元素为 null,则返回 null。
// 栈操作
public void push(E e) // 栈顶添加一个元素。
public E pop() // 移除栈顶元素,如果栈顶没有元素将抛出异常。 
public E peek() // 获取第一个元素,如果返回 null。

5. PriorityQueue

java 复制代码
PriorityQueue<E> pri_que = new PriorityQueue<>();
// 基本方法
public boolean add(E e) // 将指定的元素插入此优先级队列。如果队列已满,则会引发异常。
public boolean offer(E e) // 将指定的元素插入此优先级队列。如果队列已满,则返回false。

public E peek() // 获取队列顶部元素,但不删除。如果队列为空,则返回null。
public E element() // 获取队列顶部元素,但不删除。如果队列为空,则抛出异常。

public boolean remove() // 删除队列顶部元素。如果队列为空,则抛出异常。
public E poll() // 删除并返回队列顶部元素。如果队列为空,则返回null。

6. Arrays

java 复制代码
public static int binarySearch(Object[] a, Object key) //二分查找(a已排序)
public static boolean equals(Object[] a, Object[] a2) //判断两数组是否完全一致
public static void fill(Object[] a, Object val) //在a中所有位置填充val
public static void fill(Object[] a, int fromIndex, int toIndex, Object val) //在[fromIndex,toIndex)中填充元素val
public static String toString(Object[] a) //将数组a转换为字符串,如"[1, 2, 3]"
public static void sort(Object[] a) //改进的快速排序(升序)
public static void sort(Object[] a, int fromIndex, int toIndex) //对[fromIndex,toIndex)中的元素排序(升序)
public static <T> void sort(T[] a, Comparator<? super T> c) //自定义比较器排序

7. Collections

java 复制代码
// 对Collection对象
public static Object max(Collection coll) //获取最大值
public static Object min(Collection coll) //获取最小值
// 对List对象
public static int binarySearch(List list, Object key) //查找元素
public static void copy(List dest, List src) //将src复制给dest
public static void fill(List list, Object obj) //在list中填充obj
public static void reverse(List list) //列表元素倒置
public static void sort(List list) //升序排序
public static <T> void sort(List<T> list, Comparator<? super T> c) //自定义比较器排序
相关推荐
thefool11226614 分钟前
多线程 4
java
Rain的Java大神之路30 分钟前
[特殊字符]8年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)
java·数据库·人工智能·后端·python·spring·ai编程
高级程序源1 小时前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
IT研究室1 小时前
最新计算机毕业设计选题推荐-基于spring boot的文学名著分享系统-网站-文档指导-Java-springboot
java·spring boot·课程设计
denlaku1 小时前
JDK 13 新特性详解
java·开发语言
秋饼1 小时前
Java 后端企业级 LLM 网关实战:Spring Cloud Gateway 构建统一大模型接入层
java·ai·技术分享·后端开发
今年下半年1 小时前
【防重放】Spring Boot 通过自定义注解实现接口防重放
java·spring boot·自定义注解·防重放
WeiXin_DZbishe1 小时前
基于Node.js的马拉松赛事管理系统的设计与实现-计算机毕设 附源码【课程设计】90211
java·javascript·vue.js·python·php·课程设计
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: 使用 Docker 镜像命令练习
java·docker
企业数字化笔记2 小时前
多租户系统从哪里开始设计?租户身份、数据隔离、权限与套餐的整体方案
java·spring boot·后端·junit