Java 集合遍历与循环多种方式

前言

Java中集合是非常常用非常重要的 ,应用是十分广泛的,作为集合这种数据结构,遍历循环方式也有很多种我们可以梳理总结不同的遍历方式,方便理解和运用

List 遍历方式

  1. List继承了Collection,是有序的列表。

  2. 实现类有ArrayList、LinkedList、Vector、Stack等

    1. ArrayList是基于数组实现的,是一个数组队列。可以动态的增加容量!

    2. LinkedList是基于链表实现的,是一个双向循环列表。可以被当做堆栈使用!

    3. Vector是基于数组实现的,是一个矢量队列,是线程安全的!

    4. Stack是基于数组实现的,是栈,它继承与Vector,特性是FILO(先进后出)!

所有list集合都是迭代器Iterator子类也都统称迭代器,可以通过迭代器方式去循环便利

  1. 第一种方式 迭代器遍历
 List a= new ArrayList();
        a.add(1);
        a.add(2);
        a.add(3);

        //获取迭代器
        Iterator b=a.iterator();
        //判断是否有下一个值
        while (b.hasNext()){
            //取出这个值
            System.out.println(b.next());
        }
  1. 第二种方式
List a= new ArrayList();
        a.add(1);
        a.add(2);
        a.add(3);
        for(Iterator iterator=a.iterator();iterator.hasNext();){
            System.out.println(iterator.next());
        }
  1. 第三种方式 foreach 遍历
 List a= new ArrayList();
        a.add(1);
        a.add(2);
        a.add(3);
        for(Object o:a){
            System.out.println(o);
        }
  1. 第四种方式 fori 遍历
List a= new ArrayList();
        a.add(1);
        a.add(2);
        a.add(3);
        for(int i=0;i<a.size();i++){
            System.out.println(a.get(i));
        }

Map遍历方式

  1. 按照key方式来遍历
 Map a=new HashMap();
       a.put("a",1);
       a.put("b",2);
       a.put("c",3);
       //获取所以key
       Set key=a.keySet();
       for(Object o:key){
           //通过key 来获取所有值
           System.out.println(a.get(o));
       }
  1. 通过Map.entrySet使用iterator遍历key和value
 Map a=new HashMap();
       a.put("a",1);
       a.put("b",2);
       a.put("c",3);
       // 获取Iterator
       Iterator<Map.Entry<String, Integer>> it = a.entrySet().iterator();
       //遍历
        while (it.hasNext()) {
            Map.Entry<String, Integer> entry = it.next();
            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
        }
  1. 通过Map.entrySet遍历key和value,推荐,尤其是容量大时
Map a=new HashMap();
       a.put("a",1);
       a.put("b",2);
       a.put("c",3);
        for ( Object o : a.entrySet()) {
            //Map.entry<Integer,String> 映射项(键-值对)  有几个方法:用上面的名字entry
            //entry.getKey() ;entry.getValue(); entry.setValue();
            //map.entrySet()  返回此映射中包含的映射关系的 Set视图。
            Map.Entry<String,Integer> d=(Map.Entry<String,Integer> )o;
            System.out.println("key= " + d.getKey() + " and value= " + d.getValue());
        }
  1. 通过Map.values()遍历所有的value,但不能遍历key
 Map a = new HashMap();
        a.put("a", 1);
        a.put("b", 2);
        a.put("c", 3);
        for (Object o : a.values()) {
            System.out.println(o);

        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值