package J20250724.demo02_function_program;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * @author WanJl
 * @version 1.0
 * @title Demo04
 * @description
 * @create 2025/7/24
 */
public class Demo04 {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }
        list.add(5);
        list.add(10);
        list.add(3);
        list.add(10);
        System.out.println(list);
        //把元素大于5的元素添加到新的List集合中
        List<Integer> integerList = list.stream()
                .filter(n -> n > 5)
                .collect(Collectors.toList());
        System.out.println(integerList);

        Set<Integer> integerSet = list.stream().filter(n -> n > 5)
                .collect(Collectors.toSet());
        System.out.println(integerSet);


        /*
        创建一个ArrayList集合，添加以下字符串，字符串前面是姓名，后面是年龄，终结使用逗号分隔
            张三,20
            李四,35
            王五,60
            保留年龄大于20岁的人，并将结果收集到Map集合中，姓名是键，年龄是值。
         */
        ArrayList<String> myList=new ArrayList<>();
        myList.add("张三,20");
        myList.add("李四,35");
        myList.add("王五,60");

        Map<String, Integer> map = myList.stream().filter(
                s -> {
                    String[] split = s.split(",");
                    int age = Integer.parseInt(split[1]);
                    return age > 20;    //获取年龄大于20的
                }
        ).collect(Collectors.toMap(
                s -> s.split(",")[0],   //获取姓名
                s -> Integer.parseInt(s.split(",")[1])  //获取年龄，转换为Integer类型
        ));
        System.out.println(map);

    }
}
