JAVASE之Queue、Deque、Map
来源:互联网 发布:怎么删除淘宝评论记录 编辑:程序博客网 时间:2024/05/18 09:38
队列 Queue
先进先出
选择LinkedList实现Queue的原因在于Queue经常要添加和删除的操作,正好LinkList在这方面的效率高
队列的入队,出队,查看队首,遍历队列:
public static void main(String[] args) { Queue<String> queue = new LinkedList<String>(); /* * boolean offer(T t) * 入队方法 * 将给定元素添加到队列末尾。添加成功返回true */ queue.offer("a"); queue.offer("b"); queue.offer("c"); queue.offer("d"); System.out.println(queue); /* * T poll() * 用于获取队首元素。出队操作 * 获取后,队列中将不再包含该元素 */ String str = queue.poll(); System.out.println(str); System.out.println(queue); /* * T peek() * 用于获取队首元素,仅引用,不做出队操作 */ str= queue.peek(); System.out.println(str); System.out.println(queue); /* *遍历队列 *遍历队列是一次性,遍历了出去了队列里就没了。 */ while(queue.size()>0){ String str1 = queue.poll(); System.out.println(str1); } System.out.println(queue); }
Deque
双端队列,队列的两端分别可以入队(offer)和出队(poll)
如果Deque限制为只能从一端入队和出队,则可实现 栈 (Stack)。先进后出。入栈push。出栈pop
当一系列操作有可追溯性的时候
public static void main(String[] args) { Deque<String> stack = new LinkedList(); /* * 入栈 */ stack.push("a"); stack.push("b"); stack.push("c"); stack.push("d"); System.out.println(stack); /* * 出栈 pop(),取出后栈中会删除此元素 */ String str = stack.pop(); System.out.println(stack); /* * 同样,遍历栈也是一次性的 */ while(stack.size()>0){ String str1 = stack.pop(); System.out.println(str1); } }
Map
key:value
python的字典。。。
例如 学科对应 分数
public static void main(String[] args) { //注意是 HashMap //一般key是一个类型,value是一个类型 //key是String,value是整数,注意!!!泛型不能是基本类型所以用Integer Map<String,Integer> map = new HashMap<String,Integer>(); /* * put是写入,key与对应的value * 若给定的key在Map中不存在,则是添加新内容 * 返回的是null * 若给定的key在Map中存在,则是替换value * 那么返回的是被替换掉额value */ map.put("数学", 90); map.put("语文", 95); map.put("物理", 93); map.put("化学", 94); map.put("体育", 91); map.put("地理", 80); System.out.println(map); /* * v get(K k) * 根据给定的key获取对应的value * 传入个不存在的返回null */ Integer num = map.get("化学"); System.out.println("化学:"+num); /* *boolean containsKey(K k) *判断当前Map中是否含有给定的key *是否含有是根据key的equals判断的 * */ //查看是否含有数学 if(map.containsKey("数学")){ System.out.println("包含数学"); } else{ System.out.println("不包含数学"); } /* * 删除某个元素,给定key * 就删除这一条了,key和value * 返回值为删除的value */ map.remove("地理"); System.out.println(map); }
快速创建
空白处—右键–源代码–右下就各种快捷了,创建构造函数,hashcode,set,get方法~~
遍历Map:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<String,Integer>(); map.put("数学", 90); map.put("语文", 95); map.put("物理", 93); map.put("化学", 94); map.put("体育", 91); map.put("地理", 80); System.out.println(map.keySet()); System.out.println(map.values()); /* * 遍历所有的key * Set<K> keySet() * 该方法可以获取Map中所有的key,并将它们存入一个Set集合中 * 返回,所以,遍历该集合就等于遍历所有的key了 */ Set<String>keyset = map.keySet(); for(String key:keyset){ System.out.println(key); } /* * 遍历键值对 * Set<Entry> entrySet() * 该方法会将每一组key-value存入一个Entry实例中,并将这些Entry实例存入一个Set集合中并 * 返回,我们只需要遍历该集合,拿到每一个Entry实例并获取其中的key与value即可 */ //Entry也要泛型相当于一列:key:value 即 String,Inteher Set<Entry<String, Integer>> entryset = map.entrySet(); //用新循环遍历,注意 Entry for(Entry<String,Integer> e:entryset){ //利用getKey和getValue获取key和Value String key =e.getKey(); Integer value = e.getValue(); System.out.println("key:"+key+" "+"value:"+value); } // for(Integer I:map.values()){ System.out.println(I); } for(String S:map.keySet()){ System.out.println(S); }
0 0
- JAVASE之Queue、Deque、Map
- queue,deque
- Queue&Deque
- Java集合之Queue和Deque接口
- STL 整理map、set、vector、list、stack、queue、deque、priority_queue
- Java集合框架官方教程(2):Queue/Deque/Map接口
- STL详解(vector,list,deque,stack,queue,priority_queue;map,set)
- map、set、vector、list、stack、queue、deque、priority_queue
- 高性能Python之:Queue,deque,queue对比
- JAVASE之集合框架-----Map
- JAVASE之Set和Map
- stl之 set deque map特性
- java学习之map,queue
- STL 各种容器 vector deque list set map multiset map multimap stack queue priority_queue
- Queue.Queue vs collections.deque
- JDK源码阅读之Queue接口和Deque接口
- stack,deque,queue对比
- Queue与Deque接口
- 感慨
- Android 中的 Service 全面总结
- PHP中常用加密函数介绍
- java中==和equals()方法的区别
- HDU 3635 Dragon Balls(并查集)
- JAVASE之Queue、Deque、Map
- 为什么要有下拉刷新?
- 关于谷歌不支持font-size小于12px的问题
- ios中播放gif动画
- 用IDE手动加载jar包
- c# XML和实体类之间相互转换(序列化和反序列化)
- 分割视图控制器(UISplitViewController)
- twitter id生成算法snowflake详解
- 自定义View