学习Java8中StreamAPI的笔记

打印 上一主题 下一主题

主题 883|帖子 883|积分 2649

本次笔记记录一下我自己学习Stream流的一个情况。
第一种:使用Stream流来代替增强for循环进行赋值:
这是使用增强for循环的写法:
  1. public static void main(String[] args) {
  2. ArrayList<String> strings = new ArrayList<>();
  3. strings.add("张三");
  4. strings.add("李四");
  5. strings.add("王五");
  6. strings.stream().forEach(System.out::println);
  7. }
复制代码
 
执行结果为:

 
 
第三个,使用Filter来进行简单的过滤
  1. public class demmo {
  2. public static void main(String[] args) {
  3. ArrayList<String> strings = new ArrayList<>();
  4. strings.add("张三");
  5. strings.add("李四");
  6. strings.add("王五");
  7. strings.add("王二麻子");
  8. strings.stream().filter(string->!string.equals("张三")).forEach(System.out::println);
  9. }
  10. }
复制代码
执行结果为:

 

第三种:使用Stream流的filte和noneMatch来过实现滤多组数据的值(把两组List一个当作条件一个当作结果,A组里面含有B的(map结构是为了模拟实际业务中 key:value的情况,可以进行替换成为需要的数据)),实现复杂数据的对比。
  1. public class demmo {
  2. public static void main(String[] args) {
  3. List<Map<String, String>> list1 = new ArrayList<>();
  4. HashMap<String, String> stringStringHashMap1 = new HashMap<>();
  5. stringStringHashMap1.put("name", "张三");
  6. list1.add(stringStringHashMap1);
  7. HashMap<String, String> stringStringHashMap2 = new HashMap<>();
  8. stringStringHashMap2.put("name", "王五");
  9. list1.add(stringStringHashMap2);
  10. List<Map<String, String>> list2 = new ArrayList<>();
  11. HashMap<String, String> stringStringHashMap3 = new HashMap<>();
  12. stringStringHashMap3.put("name", "张三");
  13. list2.add(stringStringHashMap3);
  14. List<Map<String,String>>newList=
  15. list1.stream().filter(map->list2.stream().noneMatch(obj->obj.get("name").equals(map.get("name")))).collect(Collectors.toList());
  16. for (Map<String, String> ssmap : newList){
  17. System.out.println(ssmap);
  18. }
  19. }
  20. }
复制代码
 
 
执行结果为

 

去除了张三这个相同的值,只有王五这个值,这个还能继续扩展,自己发挥吧。
第四种,使用Stream流来进行截取,选择一串数据的前几个来进行显示。
  1. public class demmo {
  2. public static void main(String[] args) {
  3. ArrayList<String> strings = new ArrayList<>();
  4. strings.add("张三");
  5. strings.add("李四");
  6. strings.add("王五");
  7. strings.add("王二麻子");
  8. strings.stream().limit(2).forEach(System.out::println);
  9. }
  10. }
复制代码
 
执行结果为:

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表