Demo03_.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package J20250724.demo02_function_program;
  2. import java.util.ArrayList;
  3. import java.util.function.Predicate;
  4. import java.util.stream.Stream;
  5. /**
  6. * @author WanJl
  7. * @version 1.0
  8. * @title Demo03_
  9. * @description
  10. * @create 2025/7/24
  11. */
  12. public class Demo03_ {
  13. public static void main(String[] args) {
  14. ArrayList<String> list=new ArrayList<>();
  15. list.add("万事如意");
  16. list.add("万家灯火");
  17. list.add("万JL");
  18. list.add("万达");
  19. list.add("张三");
  20. list.add("张老三");
  21. list.add("万元户");
  22. list.add("万宝路");
  23. //filter过滤
  24. list.stream().filter(s->{
  25. return s.startsWith("张");
  26. }).forEach(s-> System.out.println(s));
  27. System.out.println("--------------------");
  28. //Stream<T> limit() 返回这个流中的元素组成的流,截取指定参数个数的数据
  29. //Stream<T> skip() 跳过指定参数个数的数据,返回有该流剩余的元素组成的流
  30. //截取前3个元素在控制台输出
  31. list.stream().limit(3).forEach(System.out::println);
  32. System.out.println("--------------------");
  33. //跳过3个元素把剩下的元素在控制台输出
  34. list.stream().skip(3).forEach(System.out::println);
  35. System.out.println("--------------------");
  36. //跳过2个元素,把剩下的元素中的前3个元素在控制台输出
  37. list.stream().skip(2).limit(3).forEach(System.out::println);
  38. //static<T> Stream<T> concat(Stream a,Stream b) 合并a和b两个流为一个流
  39. //Stream<T> distinct() 返回这个流的不同元素(使用equals比较)组成的流
  40. //需求:获取前4个元素组成一个流
  41. Stream<String> s1 = list.stream().limit(4);
  42. //需求:跳过前2个元素剩下的元素组成一个流
  43. Stream<String> s2 = list.stream().skip(2);
  44. //需求:合并前两个需求得到的流,并且把结果在控制台输出
  45. Stream.concat(s1,s2).forEach(System.out::println);
  46. //需求:合并需求1和需求2得到的流,并且把结果放在控制台输出,要求字符串元素不能重复。
  47. Stream.concat(s1,s2).distinct().forEach(System.out::println);
  48. // void forEach(Consumer action) 对当前流的每个元素执行操作
  49. // long count() 返回当前流中的元素数
  50. long count = list.stream().count();
  51. System.out.println("其实就是集合的长度:"+count);
  52. //需求:统计集合中万开头的元素数量
  53. long count1 = list.stream().filter(s -> s.startsWith("万")).count();
  54. System.out.println(count1);
  55. //需求:遍历集合
  56. list.stream().forEach(System.out::println);
  57. }
  58. }