对于一些常用数据类型的方法进行总结
数组
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);