package J20250724.demo02_function_program; import java.util.ArrayList; import java.util.function.Predicate; import java.util.stream.Stream; /** * @author WanJl * @version 1.0 * @title Demo03_ * @description * @create 2025/7/24 */ public class Demo03_ { public static void main(String[] args) { ArrayList list=new ArrayList<>(); list.add("万事如意"); list.add("万家灯火"); list.add("万JL"); list.add("万达"); list.add("张三"); list.add("张老三"); list.add("万元户"); list.add("万宝路"); //filter过滤 list.stream().filter(s->{ return s.startsWith("张"); }).forEach(s-> System.out.println(s)); System.out.println("--------------------"); //Stream limit() 返回这个流中的元素组成的流,截取指定参数个数的数据 //Stream skip() 跳过指定参数个数的数据,返回有该流剩余的元素组成的流 //截取前3个元素在控制台输出 list.stream().limit(3).forEach(System.out::println); System.out.println("--------------------"); //跳过3个元素把剩下的元素在控制台输出 list.stream().skip(3).forEach(System.out::println); System.out.println("--------------------"); //跳过2个元素,把剩下的元素中的前3个元素在控制台输出 list.stream().skip(2).limit(3).forEach(System.out::println); //static Stream concat(Stream a,Stream b) 合并a和b两个流为一个流 //Stream distinct() 返回这个流的不同元素(使用equals比较)组成的流 //需求:获取前4个元素组成一个流 Stream s1 = list.stream().limit(4); //需求:跳过前2个元素剩下的元素组成一个流 Stream s2 = list.stream().skip(2); //需求:合并前两个需求得到的流,并且把结果在控制台输出 Stream.concat(s1,s2).forEach(System.out::println); //需求:合并需求1和需求2得到的流,并且把结果放在控制台输出,要求字符串元素不能重复。 Stream.concat(s1,s2).distinct().forEach(System.out::println); // void forEach(Consumer action) 对当前流的每个元素执行操作 // long count() 返回当前流中的元素数 long count = list.stream().count(); System.out.println("其实就是集合的长度:"+count); //需求:统计集合中万开头的元素数量 long count1 = list.stream().filter(s -> s.startsWith("万")).count(); System.out.println(count1); //需求:遍历集合 list.stream().forEach(System.out::println); } }