Bootstrap

Java常用数据结构公式化速查

对于一些常用数据类型的方法进行总结

数组

int[] arr = new int[10];//必须指定数组长度和类型
int[][] matrix = new int[3][4];
方法作用
arr.length()获取数组长度
Arrays.sort(arr)排序
Arrays.fill(arr, 0)填充值
Arrays.copyOf(arr, n)数组拷贝
Arrays.copyOfRange(arr,int startIndex,int endIndex)数组拷贝指定起始索引
另外,java.lang.System类中有方法

 1. arraycopy()
System.arraycopy(dataType[] srcArray,int srcIndex,int[] destArray,int destIndex,int length)
其中,srcArray 表示原数组;srcIndex 表示原数组中的起始索引;destArray 表示目标数组;destIndex 表示目标数组中的起始索引;length 表示要复制的数组长度。
 2. clone()
int[] targetArray=(int[])sourceArray.clone();
clone() 方法的返回值是 Object 类型,要使用强制类型转换为适当的类型

ArrayList

List<Integer> list = new ArrayList<>();
List<List<Integer>> list = new ArrayList<>();
方法作用
add(E e)添加元素(尾部O(1),中间O(n))
get(int index)获取元素(O(1))
remove(int index)删除元素(O(n))
size()获取元素个数
contains(Object o)检查存在性(O(n))

LinkedList

List<Integer> list = new LinkedList<>();
Queue<Integer> queue = new LinkedList<>(); // 队列实现
方法作用
addFirst(E e)/addLast(E e)头尾添加(O(1))
poll()/pollFirst()/pollLast()头尾删除(O(1))
peek()查看队首元素(O(1))
public boolean add(E e)链表末尾添加元素,返回是否成功,成功为 true,失败为 false。
public void add(int index, E element)向指定位置插入元素。
public boolean offer(E e)向链表末尾添加元素,返回是否成功,成功为 true,失败为 false
public E removeFirst()、public E poll()、public E remove()删除并返回第一个元素。
public boolean contains(Object o)判断是否含有某一元素。
public E get(int index)返回指定位置的元素。
public E peek()、public E element()返回第一个元素。
public int size()返回链表元素个数

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

LinkedList 继承了 AbstractSequentialList 类。

LinkedList 实现了 Queue 接口,可作为队列使用。

LinkedList 实现了 List 接口,可进行列表的相关操作。

LinkedList 实现了 Deque 接口,可作为队列使用。

LinkedList 实现了 Cloneable 接口,可实现克隆。

LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。
在这里插入图片描述

HashMap

Map<Integer, String> map = new HashMap<>();
方法作用
isEmpty()判断 hashMap 是否为空
size()计算 hashMap 中键/值对的数量
put()将键/值对添加到 hashMap 中
remove()删除 hashMap 中指定键 key 的映射关系
containsKey()检查 hashMap 中是否存在指定的 key 对应的映射关系。
containsValue()检查 hashMap 中是否存在指定的 value 对应的映射关系。
get()获取指定 key 对应对 value
getOrDefault()获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值
entrySet()返回 hashMap 中所有映射项的集合集合视图
keySet()返回 hashMap 中所有 key 组成的集合视图。
values()返回 hashMap 中存在的所有 value 值。

HashSet

Set<Integer> set = new HashSet<>();
方法作用
add(E e)添加元素
remove(Object o)删除元素
contains(Object o)检查存在性
size()计算大小

Stack

Deque<Integer> stack = new ArrayDeque<>();
方法作用
push(E e)入栈
pop()出栈
peek()查看栈顶

PriorityQueue

// 默认最小堆
Queue<Integer> minHeap = new PriorityQueue<>(); 
// 最大堆实现
Queue<Integer> maxHeap = new PriorityQueue<>((a,b)->b-a);
方法作用
offer(E e)添加元素
poll()删除堆顶
peek()查看堆顶

字符串操作

String

  • charAt(int index)

  • substring(int begin, int end)

  • toCharArray()

  • split(String regex)

StringBuilder:

  • append()

  • reverse()

  • toString()

  • deleteCharAt(int index)

工具类方法

// 数组转List
List<Integer> list = Arrays.asList(arr);
// List排序
Collections.sort(list);
// 数学运算
Math.max(a, b); 
Math.min(a, b);
;