//新建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);