【背景】
敲代码多年,经常手疼,于是总想着复制,总是无内容可复制,只好自行解决。
Stream是个好东西,能节省不少时间,但不熟悉API的话,就难以理解,趁着工作时间把常用的做了个整理(复制品),感谢,Stream让我们能写出更高效率、干净、简洁的代码。
【内容】
![9d1716c640714e630a01b201de1ec97a.png](https://img-blog.csdnimg.cn/img_convert/9d1716c640714e630a01b201de1ec97a.png)
![1433802d98facd5bd03d2ea64d1e18d7.png](https://img-blog.csdnimg.cn/img_convert/1433802d98facd5bd03d2ea64d1e18d7.png)
【代码】
@Data @AllArgsConstructor static class User{ private Integer id; private String name; } public static void main(String[] args) { List userList = Arrays.asList(new User(1,"一"),new User(2,"二")); // 对象列表=================>转数组 int[] idArray = userList.stream().mapToInt(user->{ return user.getId(); }).toArray(); System.out.println("idArray=>" + Arrays.toString(idArray)); // 对象列表=================>转数组 Object[] nameObjectArray = userList.stream().map(user->{ return user.getName(); }).toArray(); System.out.println("nameObjectArray=>" + Arrays.toString(nameObjectArray)); // 对象列表=================>转数组 String[] nameStringArray = userList.stream().map(user->{ return user.getName(); }).toArray(String[]::new); System.out.println("nameStringArray=>" + Arrays.toString(nameStringArray)); }
@Data @AllArgsConstructor static class User { private Integer id; private String name; } public static void main(String[] args) { List userList = Arrays.asList(new User(1, "一"), new User(2, "二")); // 对象列表=================>转List List idList = userList.stream().map(user -> { return user.getId(); }).collect(Collectors.toList()); System.out.println("idList=>" + idList); // 对象列表=================>转Set Set nameSet = userList.stream().map(user -> { return user.getName(); }).collect(Collectors.toSet()); System.out.println("nameSet=>" + nameSet); // 对象列表=================>转Map Map userMap = userList.stream().collect(Collectors.toMap(User::getId, User::getName)); System.out.println("userMap=>" + userMap); }