Java集合常见遍历方式

Map.Entry简析

Map.Entry<K,V>实际上是内部的一个静态类,作用是封装Map集合中的一组“键值对对象”。

从源码简单来看,这个内部类是如下的结构:

// 基于jdk1.8
// 代码是简写,抽出有意义部分

// 接口中如下:
interface Map<K,V>{
    interface Entry<K,V>{
    }
}

// 实现类中如下:
class HashMap<K,V> implements Map<K,V>{
    static class Node<K,V> implements Map.Entry<K,V>{
    }
}

因而,平常我们见到的Map.Entry<K,V>和Entry<K,V>的用法都是正确的。前者是父类引用指向子类对象,后者是直接获取子类对象,达到的效果其实是相同的。后者可采用jdk1.5的新特性静态导入的导包方式。(但从运用上看,似乎不静态导入也是没有问题的)

一.Map类型

方式1:使用map.entrySet方法

   for(Map.Entry<String,Object> entry : map.entrySet()){
            System.out.println(entry.getKey()+":"+entry.getValue());
        }

方式2:使用iterator

 Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry<String, Object> entry = iterator.next();
            System.out.println(entry.getKey()+":"+entry.getValue());
        }

方式三:foreach


 map.forEach(new BiConsumer<String, JobDescription>() {
      @Override
      public void accept(String s, JobDescription jobDescription) {
      System.out.println("键"+s);
      System.out.println("值"+jobDescription);
     }
 });
箭头函数写法:
 map.forEach((k,v)->{
      System.out.println("键"+k);
      System.out.println("值"+v);
 });

二.list类型

1.迭代器迭代,iterator

  Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }

2.增强for循环

    for(String s : list){
            System.out.println(s);
        }

3.普通for循环

for (int i=0; i<list.size(); i++){
            System.out.println(list.get(i));
        }

三. Set类型

1.迭代器方式

 Iterator<String> iterator = set.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }

2.增强for循环(略)

四. 数组遍历

1.增强for循环

  for (String s : arrays){
            System.out.println(s);
        }

2.普通for循环

  for (int i=0; i<arrays.length; i++){
            System.out.println(arrays[i]);
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值