练习:集合元素处理(Stream流方式)
package com.chunzhi.Test03Stream; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; /* 练习:集合元素处理(Stream方式) */ public class Test02StreamTest { public static void main(String[] args) { // 第一支队伍 List<String> one = new ArrayList<>(); one.add("迪丽热巴"); one.add("宋远桥"); one.add("苏星河"); one.add("石破天"); one.add("石中玉"); one.add("老子"); one.add("庄子"); one.add("洪七公"); // 第一个队伍只要名字为3个字的成员姓名; // 第一个队伍筛选之后只要前3个人; Stream<String> oneStream = one.stream().filter(name -> name.length() == 3).limit(3); // 第二支队伍 List<String> two = new ArrayList<>(); two.add("古力娜扎"); two.add("张无忌"); two.add("赵丽颖"); two.add("张三丰"); two.add("尼戈拉斯赵四"); two.add("张天爱"); two.add("张二狗"); // 第二个队伍只要姓张的成员姓名; // 第二个队伍筛选之后不要前2个人 Stream<String> twoStream = two.stream().filter(name -> name.startsWith("张")).skip(2); // 将两个队伍合并为一个队伍 // 根据姓名创建Person对象 // 打印整个队伍的Person对象信息 Stream.concat(oneStream, twoStream).map(name -> new Person(name)).forEach(person -> System.out.println(person)); } }
执行结果: