java中的集合有两种形式Collection<E>,Map<K,V>

  • Collection类型集合
    在JAVA7中遍历有一下几种方式:
List<String> list = Arrays.asList("aaaa","bbbb");
//for循环
for (int i=0;i< list.size();i++){System.out.println(list.get(i));
}//增强for循环
for(String str : list){System.out.println(str);
}
//迭代器
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){System.out.println(iterator.next());
}

在JAVA8中还可以使用forEach来遍历:

list.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}
});

发现和使用sort排序的写法是一样的:

Collections.sort(list, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.compareTo(o2);}
});

发现代码量没有减少多少,那么我们在加上Lambda表达式,如下:

list.forEach(str-> System.out.println(str));

sort排序也使用Lambda表达式,如下:

Collections.sort(list,(o1,o2)->{return  o1.compareTo(o2);});
  • Map类型集合
    在JAVA7中遍历有下面几种方式:
Map<String,String> map = new HashMap<>();
map.put("id","11");
map.put("name","zhangsan");
map.put("age","30");
for (Map.Entry<String,String> entry : map.entrySet()){System.out.println("k=" + entry.getKey() + ",v=" + entry.getValue());
}
for (String key : map.keySet()){System.out.println("k=" + key + ",v=" + map.get(key));
}
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){Map.Entry<String, String> entry = iterator.next();System.out.println("k=" + entry.getKey() + ",v=" + entry.getValue());
}
for (String v : map.values()){System.out.println("v=" + v);
}

使用JAVA8的forEach遍历,如下:

map.forEach(new BiConsumer<String, String>() {@Overridepublic void accept(String s, String s2) {System.out.println("k=" + s + ",v=" + s2);}
});

也可以使用Lambda表达式,如下:

map.forEach((k,v)-> System.out.println("v="+k+",v="+v));

本文中只使用forEach,没有使用JAVA8的Stream包。
注:例子中出现的ConsumerBiConsumer是JAVA8中新增的函数式接口,Consumer接口中只有一个无返回结果并且只有一个泛型参数的方法,源码如下:

BiConsumer接口中提供的是一个无返回结果并且有两个泛型参数的方法,源码如下:

java8 遍历list集合相关推荐

  1. java8遍历数组_java8新特性,使用流遍历集合

    在这篇"Java 8新特性教程"系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章"遍历.过 ...

  2. Collection集合--遍历List集合的五种方法

    一.总结 遍历List集合的方法 方法描述 方法一 由迭代器Iterator进行遍历 方法二 由集合定义时的泛型遍历for(T t:list) 方法三 根据索引遍历for(int i = 0;i &l ...

  3. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 find 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 find 方法遍历 map 集合 使用 map 集合的 find 方法遍历 map 集合 ...

  4. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 each 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 each 方法遍历 map 集合 遍历 map 集合 , 可以调用 map 集合的 eac ...

  5. 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )

    文章目录 一.调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 二.代码示例 一.调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 集合的 every 方法 , 用于 ...

  6. 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )

    文章目录 一.使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 1.闭包中使用 == 作为 findAll 方法的查找匹配条件 2.闭包中使用 is 作为 findAll 方法的查找匹 ...

  7. 【Groovy】集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )

    文章目录 一.使用集合的 find 方法查找集合元素 1.闭包中使用 == 作为查找匹配条件 2.闭包中使用 is 作为查找匹配条件 3.闭包中使用 true 作为查找匹配条件 二.完整代码示例 一. ...

  8. 【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )

    文章目录 一.使用集合的 reverseEach 方法进行倒序遍历 二.倒序集合迭代器 ReverseListIterator 类简介 三.代码示例 一.使用集合的 reverseEach 方法进行倒 ...

  9. 【Groovy】集合遍历 ( 使用集合的 eachWithIndex 方法进行遍历 | 代码示例 )

    文章目录 一.使用集合的 eachWithIndex 方法进行遍历 二.代码示例 一.使用集合的 eachWithIndex 方法进行遍历 集合的 eachWithIndex 方法 , 该函数传入一个 ...

最新文章

  1. Java版开发原生App支付
  2. hashMap put方法 第二行代码
  3. SQLServer数据库访问帮助类
  4. cpu 保存模式的内存访问向下兼容原理
  5. 一招判断三元催化堵塞_汽车的氧传感器和三元催化器故障如何判断呢?用这些方法判断...
  6. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
  7. 原生js ajax请求有几个步骤?分别是什么
  8. 小知识--Windows语音效果
  9. 是否可以将现有图表导入到 think-cell?
  10. 东方时尚驾校科目一网上视频快速通过方法
  11. Acwing1183. 电力
  12. str.substring() 的用法
  13. 博客中的动态图片如何制作
  14. 计算机及统计学,统计学中及计算机视觉中的各种 距离 汇总。。。
  15. 微信小程序——image图片自适应宽度比例显示的方法
  16. linux+sftp限制目录,Linux 限制SFTP用户目录和权限
  17. [笔记] 疯狂JAVA讲义(第3版)第4章 流程控制与数组
  18. 修炼内功的融云,以通讯中台赋能企业数字化升级
  19. python第二阶段(2)入门-数据科学包 pandas
  20. 常用mysql连接数据库工具_MYSQL中常用的工具

热门文章

  1. 我的世界java版种子掠夺者,我的世界1.14新版村庄要塞种子 可以和掠夺者为伴 自带刷怪笼...
  2. 计算机网络管理员 职业技能鉴定,国家职业技能鉴定·操作技能强化训练:计算机网络管理员(国家职业资格四级)(学生取证专用)...
  3. 2022全年度奶粉十大热门品牌销量榜单
  4. pwd命令 – 显示当前工作目录的路径
  5. 2017-2018-2 20179207 《网络攻防技术》第六周作业
  6. Linux 的.bashrc 文件详解
  7. 2021年秋招面经分享·海光【GPU芯片设计工程师(成都)】
  8. Ubuntu图形界面入门学习笔记
  9. 跨境电商卖家如何创建客户参与的 Facebook 广告?
  10. python编写递归函数_Python递归函数如何写?正确的Python递归函数用法!