文章目录
前言
记录一些在平时刷 LeetCode 会用到的集合类和数据结构。
简单的说看完会用就完事了。
ArrayList
容量能动态增长的动态数组
构造方法
List<E> list = new ArrayList<>()ArrayList<E> list = new ArrayList<>()
构造空的动态数组,初始容量为 10 10 10
基本方法
| 方法 | 描述 | 返回类型 |
|---|---|---|
| add(E e) | 将 e 添加到数组末尾,添加成功返回 true ,否则返回 false | boolean |
| add(int index, E e) | 在索引 index 处插入元素 e | void |
| clear() | 清空数组 | void |
| contains(Object o) | 如果数组包含 o 返回 true ,否则返回 false | boolean |
| get(int index) | 返回索引 index 下的元素 | E |
| isEmpty() | 如果数组为空返回 true ,否则返回 false | boolean |
| size() | 返回数组长度 | int |
| remove(int index) | 返回索引 index 下的元素 E,并移除它 | E |
| remove(Object o) | 移除数组中出现的第一个元素 o,成功返回 true,否则返回 false | boolean |
| set(int index, E element) | 返回索引是 index 的元素,然后将其替换成 element | E |
| size() | 返回数组长度 | int |
HashMap
构建键值对( Key-Value ),通过 Key 去访问 Value
构造方法
- 创建一个空HashMap:
Map<K, V> map = new HashMap<>() - 通过一个Map去初始化HashMap:
Map<K, V> newMap = new HashMap<>(Map<K, V> map)
基本方法
| 方法 | 描述 | 返回值 |
|---|---|---|
| clear() | 删除所有键值对 | void |
| containsKey(Object key) | 返回Map中的键是否包含 key,包含返回 true,否则返回 false | boolean |
| containsValue(Object value) | 返回Map中的值是否包含 value,包含返回 true,否则返回 false | boolean |
| get(Object key) | 通过 key 访问并返回对应的 value,如果 Map 中不存在 key 返回 null | V |
| put(K key, V value) | 将 key 与 value 建立映射关系放入Map中,返回与 key 关联的先前值,否则返回 null | V |
| putAll(Map<K, V> map) | 复制 map 中的所有映射关系,如果已经存在则会覆盖 | void |
| remove(Object key) | 移除 key 所对应的映射关系并返回 key 原来的 value | V |
| isEmpty() | 如果 map 为空返回 true,否则返回 false | boolean |
| size() | 返回 map 的键值对数量 | int |
如何对 HashMap 进行遍历
- for-each 循环
Map<Integer, Integer> map = new HashMap<>();
for (Map.Entry<Integer, Integer> entry: map.entrySet())
System.out.println(entry.getKey() + " " + entry.getValue());
for (Integer key: map.keySet())
System.out.println(key);
for (Integer val: map.values())
System.out.println(val);
HashSet
创建一个集合容器
构造方法
Set<E> set = new HashSet<>()
基本方法
| 方法 | 描述 | 返回值 |
|---|---|---|
| add(E e) | 将元素 e 添加到 set 中,如果原来不存在 e 返回 true,否则返回 false | boolean |
| clear() | 清空 set 中的所有元素 | void |
| contains(Object o) | 返回 set 中是否存在元素 o,存在返回 true,否则返回 false | boolean |
| isEmpty() | 如果 set 为空返回 true,否则返回 false | boolean |
| remove(Object o) | 移除 set 中的元素 o 并返回 true,否则返回 false | boolean |
| size() | 返回 set 中的元素数量 | int |
如何对 HashSet 进行遍历
- for-each 循环
Set<Integer> set = new HashSet<>();
for (int val: set)
System.out.println(val);
Stack
创建一个先进后出的容器
构造方法
Stack stack = new Stack()Stack<E> stack = new Stack<>()
基本方法
| 方法 | 描述 | 返回值 |
|---|---|---|
| push(E item) | 将元素 item 推入栈顶并返回 item | E |
| isEmpty() || empty() | 如果 stack 为空返回 true,否则返回 false | boolean |
| peek() | 返回栈顶元素 | E |
| pop() | 移除并返回栈顶元素 | E |
Queue
创建一个先进先出的容器
构造方法
Queue queue = new LinkedList()Queue<E> queue = new LinkedList<>()
基本方法
| 方法 | 描述 | 返回值 |
|---|---|---|
| add(E e) || offer(E e) | 将元素 e 添加到队列中并返回 true,否则返回 false | boolean |
| peek() | 返回队头元素,如果为空返回 null | E |
| poll() | 移除并返回队头元素,如果为空返回 null | E |
| isEmpty() | 如果 queue 为空返回 true,否则返回 false | boolean |
大概就这些了吧,如果还有遇到其他的我再回来记。


被折叠的 条评论
为什么被折叠?



