12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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<String> 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<T> limit() 返回这个流中的元素组成的流,截取指定参数个数的数据
- //Stream<T> 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<T> Stream<T> concat(Stream a,Stream b) 合并a和b两个流为一个流
- //Stream<T> distinct() 返回这个流的不同元素(使用equals比较)组成的流
- //需求:获取前4个元素组成一个流
- Stream<String> s1 = list.stream().limit(4);
- //需求:跳过前2个元素剩下的元素组成一个流
- Stream<String> 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);
- }
- }
|