学习Java8中StreamAPI的笔记

本次笔记记录一下我自己学习Stream流的一个情况。

第一种:使用Stream流来代替增强for循环进行赋值:
这是使用增强for循环的写法:

public static void main(String[] args) {

ArrayList<String> strings = new ArrayList<>();
strings.add("张三");
strings.add("李四");
strings.add("王五");

strings.stream().forEach(System.out::println);

}

 

执行结果为:

 

 

第三个,使用Filter来进行简单的过滤

public class demmo {
public static void main(String[] args) {

ArrayList<String> strings = new ArrayList<>();
strings.add("张三");
strings.add("李四");
strings.add("王五");
strings.add("王二麻子");

strings.stream().filter(string->!string.equals("张三")).forEach(System.out::println);

}
}


执行结果为:

 


第三种:使用Stream流的filte和noneMatch来过实现滤多组数据的值(把两组List一个当作条件一个当作结果,A组里面含有B的(map结构是为了模拟实际业务中 key:value的情况,可以进行替换成为需要的数据)),实现复杂数据的对比。

public class demmo {
public static void main(String[] args) {
List<Map<String, String>> list1 = new ArrayList<>();

HashMap<String, String> stringStringHashMap1 = new HashMap<>();
stringStringHashMap1.put("name", "张三");
list1.add(stringStringHashMap1);

HashMap<String, String> stringStringHashMap2 = new HashMap<>();
stringStringHashMap2.put("name", "王五");
list1.add(stringStringHashMap2);

List<Map<String, String>> list2 = new ArrayList<>();

HashMap<String, String> stringStringHashMap3 = new HashMap<>();
stringStringHashMap3.put("name", "张三");
list2.add(stringStringHashMap3);

List<Map<String,String>>newList=
list1.stream().filter(map->list2.stream().noneMatch(obj->obj.get("name").equals(map.get("name")))).collect(Collectors.toList());
for (Map<String, String> ssmap : newList){
System.out.println(ssmap);
}
}
}

 

 

执行结果为

 


去除了张三这个相同的值,只有王五这个值,这个还能继续扩展,自己发挥吧。

第四种,使用Stream流来进行截取,选择一串数据的前几个来进行显示。

public class demmo {
public static void main(String[] args) {

ArrayList<String> strings = new ArrayList<>();
strings.add("张三");
strings.add("李四");
strings.add("王五");
strings.add("王二麻子");

strings.stream().limit(2).forEach(System.out::println);

}
}

 

执行结果为:

 

热门相关:暖君   暖君   史上第一宠婚:慕少的娇妻   朔明   恶明