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