Demo04.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package J20250724.demo02_function_program;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import java.util.stream.Collectors;
  7. /**
  8. * @author WanJl
  9. * @version 1.0
  10. * @title Demo04
  11. * @description
  12. * @create 2025/7/24
  13. */
  14. public class Demo04 {
  15. public static void main(String[] args) {
  16. ArrayList<Integer> list=new ArrayList<>();
  17. for (int i = 0; i < 10; i++) {
  18. list.add(i);
  19. }
  20. list.add(5);
  21. list.add(10);
  22. list.add(3);
  23. list.add(10);
  24. System.out.println(list);
  25. //把元素大于5的元素添加到新的List集合中
  26. List<Integer> integerList = list.stream()
  27. .filter(n -> n > 5)
  28. .collect(Collectors.toList());
  29. System.out.println(integerList);
  30. Set<Integer> integerSet = list.stream().filter(n -> n > 5)
  31. .collect(Collectors.toSet());
  32. System.out.println(integerSet);
  33. /*
  34. 创建一个ArrayList集合,添加以下字符串,字符串前面是姓名,后面是年龄,终结使用逗号分隔
  35. 张三,20
  36. 李四,35
  37. 王五,60
  38. 保留年龄大于20岁的人,并将结果收集到Map集合中,姓名是键,年龄是值。
  39. */
  40. ArrayList<String> myList=new ArrayList<>();
  41. myList.add("张三,20");
  42. myList.add("李四,35");
  43. myList.add("王五,60");
  44. Map<String, Integer> map = myList.stream().filter(
  45. s -> {
  46. String[] split = s.split(",");
  47. int age = Integer.parseInt(split[1]);
  48. return age > 20; //获取年龄大于20的
  49. }
  50. ).collect(Collectors.toMap(
  51. s -> s.split(",")[0], //获取姓名
  52. s -> Integer.parseInt(s.split(",")[1]) //获取年龄,转换为Integer类型
  53. ));
  54. System.out.println(map);
  55. }
  56. }