Java集合的Stack、Queue、Map的遍历

Java集合的Stack、Queue、Map的遍历
在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack、Queue、Map类型的遍历,还是有一些讲究的。
下面是常用的写法:
一、Map的遍历
Java代码 收藏代码
  1. importjava.util.HashMap;
  2. importjava.util.Iterator;
  3. importjava.util.Map;
  4. /**
  5. *Map的遍历,这个遍历比较特殊,有技巧
  6. *
  7. *@authorleizhimin2009-7-2215:15:34
  8. */
  9. publicclassTestMap{
  10. publicstaticvoidmain(String[]args){
  11. Map<String,String>map=newHashMap<String,String>();
  12. map.put("1","a");
  13. map.put("2","b");
  14. map.put("3","c");
  15. //最简洁、最通用的遍历方式
  16. for(Map.Entry<String,String>entry:map.entrySet()){
  17. System.out.println(entry.getKey()+"="+entry.getValue());
  18. }
  19. //Java5之前的比较简洁的便利方式1
  20. System.out.println("----1----");
  21. for(Iterator<Map.Entry<String,String>>it=map.entrySet().iterator();it.hasNext();){
  22. Map.Entry<String,String>entry=it.next();
  23. System.out.println(entry.getKey()+"="+entry.getValue());
  24. }
  25. //Java5之前的比较简洁的便利方式2
  26. System.out.println("----2----");
  27. for(Iterator<String>it=map.keySet().iterator();it.hasNext();){
  28. Stringkey=it.next();
  29. System.out.println(key+"="+map.get(key));
  30. }
  31. }
  32. }
3 = c
2 = b
1 = a
----1----
3 = c
2 = b
1 = a
----2----
3 = c
2 = b
1 = a

Process finished with exit code 0


二、Queue的遍历

Java代码 收藏代码
  1. importjava.util.Queue;
  2. importjava.util.concurrent.LinkedBlockingQueue;
  3. /**
  4. *队列的遍历
  5. *
  6. *@authorleizhimin2009-7-2215:05:14
  7. */
  8. publicclassTestQueue{
  9. publicstaticvoidmain(String[]args){
  10. Queue<Integer>q=newLinkedBlockingQueue<Integer>();
  11. //初始化队列
  12. for(inti=0;i<5;i++){
  13. q.offer(i);
  14. }
  15. System.out.println("-------1-----");
  16. //集合方式遍历,元素不会被移除
  17. for(Integerx:q){
  18. System.out.println(x);
  19. }
  20. System.out.println("-------2-----");
  21. //队列方式遍历,元素逐个被移除
  22. while(q.peek()!=null){
  23. System.out.println(q.poll());
  24. }
  25. }
  26. }

三、Stack的遍历


Java代码 收藏代码
  1. importjava.util.Stack;
  2. /**
  3. *栈的遍历
  4. *
  5. *@authorleizhimin2009-7-2214:55:20
  6. */
  7. publicclassTestStack{
  8. publicstaticvoidmain(String[]args){
  9. Stack<Integer>s=newStack<Integer>();
  10. for(inti=0;i<10;i++){
  11. s.push(i);
  12. }
  13. //集合遍历方式
  14. for(Integerx:s){
  15. System.out.println(x);
  16. }
  17. System.out.println("------1-----");
  18. //栈弹出遍历方式
  19. //while(s.peek()!=null){//不健壮的判断方式,容易抛异常,正确写法是下面的
  20. while(!s.empty()){
  21. System.out.println(s.pop());
  22. }
  23. System.out.println("------2-----");
  24. //错误的遍历方式
  25. //for(Integerx:s){
  26. //System.out.println(s.pop());
  27. //}
  28. }
  29. }
在遍历集合时候,优先考虑使用foreach语句来做,这样代码更简洁些。

并且推荐使用foreach
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值