栈队列等辅助知识

头文件 java.util.*;

 

一:列表List:

有两种 ArrayList和 linkedlist。

ArrayList:随机访问元素快,插入和删除元素比较慢

LinkedList:插入和删除元素快,随机访问元素比较慢。加入了一些方法,可做栈、队列、双端队列!

List<Integer> list=new ArrayList<Integer>();

 

 

二、集合Set(无相同元素):

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

set.add();   //添加元素  添加重复的还会返回False

set.remove();  //移除元素

 

 

三、栈Stack(后进先出):

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

Stack.push(root);  //  add=addLast压到最后,也就是栈顶    push=addfirst压到最前,也就是栈底    例如已有5,再push入6,从底向上为6,5

root=stack.poll(); //   poll=pop 弹出栈底的    例如已有5,再push入6,从底向上为6,5,pop会弹出6

因此如果想要实现后进先出,必须得压入用push,弹出用pop。然后可以直接看做正常的栈。

peek不移除元素的同时提供栈顶元素,pop移除并返回栈顶元素。

push入栈,在栈顶。

 

 

四、队列Queue(先进先出):

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

queue.offer(elelment); //将一个元素插入到队尾  例如已有1,再offer入2,从底向上为1,2

int a = queue.peek(); //peek和element都将在不移除的的情况下返回队头。但peek为空时返回null,element为空时抛出异常。

 int b = queue.remove(); //remove和poll都将移除一个元素并返回队头。但pool为空时返回null,remove为空时抛出异常。

 

 

五、字典Map:(键值对)

 

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

 

map.containsKey(key);       contains字典是否包含键key

 

map.replace(key, map.get(key)+1);        replace 替换,返回旧的val

 

                                                                get 得到key对应的value

 

map.put(key,value);            放入新的键值对

 

for(int i:map.keySet()) {}   对于key集合中的每个key做循环

 

 

 

 

 

 

 https://blog.csdn.net/songfeihu0810232/article/details/80156626

 

posted @   Ssshiny  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示