AC笔记 | 领扣Java容器脚手架

Collection

Java中的集合主要分为四类:

  1. List列表:有序的,可重复的;
  2. Queue队列:有序,可重复的;
  3. Stack栈:有序,可重复;
  4. Set集合:不可重复;
  5. Map映射:无序,键唯一,值不唯一。

总结

List:ArrayList和LinkedList

Queue:LinkedList

Stack:LinkedList

Map:HashMap

Set:HashSet

List

ArrayList

1.添加元素

list.add(E);	// 在列表的末尾添加元素E

2.删除元素

list.remove(index); 	// 删除位置为index的元素,后面每个元素的index减1。也就是之后每个元素向前挪一位

3.修改元素

list.add(index,E);	// 在指定的位置index添加元素E,如果index大于列表的容量,就会抛出异常

4.查找元素

for (Integer num : list) {
    System.out.print(num+",");
}

for (int i = 0; i < list.size(); i++) {
    System.out.print(list.get(i)+",");
}
LinkedList
List<Integer> list = new LinkedList<>();

1.添加元素

list.add(E);	// 在队列末尾添加元素
list.add(index,E);	//在index位置插入元素,之后每一个元素的index都加1
list.add(0,0);	//在队首添加元素0

2.删除元素

list.remove(index);		// 删除位置是index的元素

3.修改元素

list.set(index,E);	// 

4.查找元素

E e = list.get(index);
for (int i = 0; i < list.size(); i++) {
    System.out.print(list.get(i)+",");
}

Queue

队列是一个先进先出的集合

LinkedList

使用 LinkedList 实现队列

Queue<Integer> queue = new LinkedList<>();

1.元素加入队尾

queue.offer(1);

如果使用 LinkedList 来实现,offer(E) 底层也就是 add(E) ,而 add(E) 则是插入在链表的尾部。

如果队列的容量是受限的,那么则会抛出异常。

2.取出队首元素

Integer num = queue.poll();

如果队列非空,队首元素出队列,返回队首元素;如果队列是空,返回null

3.返回队首元素

Integer num = queue.peek();

poll() 相比,peek() 不删除队首元素,直接返回队首元素

4.删除队首元素

queue.remove();

poll() 相比,remove() 当队列是空的时候,抛出异常

PriorityQueue

Stack

栈主要是一个后进先出的动作,也就是说,添加还是在队列末尾,取数据也是在队列末尾

Deque

如果使用 LinkedList 也是可以实现的,主要还是 Deque<Integer>

Deque<Integer> stack = new LinkedList<>();

入栈

stack.offerLast(1);

出栈

stack.pollLast();

取栈顶元素

stack.peekLast()

Map

存储键值对

HashMap
Map<Integer,Integer> map = new HashMap<>();

1.添加元素

map.put(K, V);	// 添加元素
map.put(1, 2);

2.删除元素

map.remove(K);	// 删除key为K的键值对
map.remove(1);

3.修改元素

map.put(K, newValue);	// 修改key为K的值
map.put(1, 6);

4.查找元素

for(Integer key : map.keySet()) {
    System.out.println("("+key+","+map.get(key)+")");
}

Set

没有重复元素

HashSet
Set<Integer> set = new HashSet<>();

1.增加元素

 set.add(E);
 set.add(1);	// 添加两个一样的元素仅仅添加1个
 set.add(1);

2.删除元素

set.remove(E);
set.remove(1);

3.查找元素

boolean isInSet = set.contains(2);
for (Integer num : set) {
    System.out.print(num+",");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_之桐_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值