java8 list、map遍历以及反射

     //新建list

        List<User> userList = new ArrayList<>();
        User user = new User();
        user.setId("user-01");
        user.setName("张三");
        user.setAge(18);

        User user1 = new User();
        user1.setId("user-02");
        user1.setName("李四");
        user1.setAge(19);


        User user2 = new User();
        user2.setId("user-03");
        user2.setName("王五");
        user2.setAge(28);

        userList.add(user);
        userList.add(user1);
        userList.add(user2);
        
        //遍历list
        userList.forEach(s->{
            System.out.println("被遍历的list"+s.getName());
        });

//list去重复
userList.stream().distinct().collect(Collector.toList());

//通过stream把list转为map Map
<String, User> collect = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (o1, o2) -> o2)); System.out.println(collect.toString()); //利用@Builder 注解一次性给对象赋值 User userBuild =User.builder().age(1).Id("build-01").name("buildName").build(); System.out.println(userBuild.toString()); //遍历map collect.forEach((k,v)->{ if(k.equals("user-01")){ v.setAge(100); } }); System.out.println("遍历之后的"+collect.toString()); //反射 StringBuffer saveIdBuffer = new StringBuffer(); collect.forEach((k,v)->{ try {
//capitalize 首字母大写 Method method
= v.getClass().getMethod("get" + StringUtils.capitalize("id")); try { saveIdBuffer.append(method.invoke(v)); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } catch (NoSuchMethodException e) { e.printStackTrace(); } }); System.out.println("通过反射得到的所有id"+saveIdBuffer);
原文地址:https://www.cnblogs.com/MagicAsa/p/11647722.html