Java部分集合类和数据结构的基本方法介绍

前言

记录一些在平时刷 LeetCode 会用到的集合类数据结构
简单的说看完会用就完事了。

ArrayList

容量能动态增长的动态数组

构造方法

  • List<E> list = new ArrayList<>()
  • ArrayList<E> list = new ArrayList<>()
    构造空的动态数组,初始容量为 10 10 10

基本方法

方法描述返回类型
add(E e)e 添加到数组末尾,添加成功返回 true ,否则返回 falseboolean
add(int index, E e)在索引 index 处插入元素 evoid
clear()清空数组void
contains(Object o)如果数组包含 o 返回 true ,否则返回 falseboolean
get(int index)返回索引 index 下的元素E
isEmpty()如果数组为空返回 true ,否则返回 falseboolean
size()返回数组长度int
remove(int index)返回索引 index 下的元素 E,并移除它E
remove(Object o)移除数组中出现的第一个元素 o,成功返回 true,否则返回 falseboolean
set(int index, E element)返回索引是 index 的元素,然后将其替换成 elementE
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,否则返回 falseboolean
containsValue(Object value)返回Map中的值是否包含 value,包含返回 true,否则返回 falseboolean
get(Object key)通过 key 访问并返回对应的 value,如果 Map 中不存在 key 返回 nullV
put(K key, V value)keyvalue 建立映射关系放入Map中,返回与 key 关联的先前值,否则返回 nullV
putAll(Map<K, V> map)复制 map 中的所有映射关系,如果已经存在则会覆盖void
remove(Object key)移除 key 所对应的映射关系并返回 key 原来的 valueV
isEmpty()如果 map 为空返回 true,否则返回 falseboolean
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,否则返回 falseboolean
clear()清空 set 中的所有元素void
contains(Object o)返回 set 中是否存在元素 o,存在返回 true,否则返回 falseboolean
isEmpty()如果 set 为空返回 true,否则返回 falseboolean
remove(Object o)移除 set 中的元素 o 并返回 true,否则返回 falseboolean
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 推入栈顶并返回 itemE
isEmpty() || empty()如果 stack 为空返回 true,否则返回 falseboolean
peek()返回栈顶元素E
pop()移除并返回栈顶元素E

Queue

创建一个先进先出的容器

构造方法

  • Queue queue = new LinkedList()
  • Queue<E> queue = new LinkedList<>()

基本方法

方法描述返回值
add(E e) || offer(E e)将元素 e 添加到队列中并返回 true,否则返回 falseboolean
peek()返回队头元素,如果为空返回 nullE
poll()移除并返回队头元素,如果为空返回 nullE
isEmpty()如果 queue 为空返回 true,否则返回 falseboolean

大概就这些了吧,如果还有遇到其他的我再回来记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值