前言
小
白
可
以
看
看
,
老
手
请
移
步
\color{blue}小白可以看看,老手请移步
小白可以看看,老手请移步
之
前
用
j
d
k
7
,
现
在
切
换
到
j
d
k
8
,
记
录
本
人
使
用
的
一
些
案
例
,
仅
此
而
已
\color{blue}之前用jdk7,现在切换到jdk8,记录本人使用的一些案例,仅此而已
之前用jdk7,现在切换到jdk8,记录本人使用的一些案例,仅此而已
初始化数据
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String username;
private String password;
private Integer age;
private boolean deleted;
public static List<User> getUserList() {
User user = new User("张三", "123456", 20, false);
User user1 = new User("李四", "123456", 24, false);
User user2 = new User("王五", "123456", 25, false);
User user3 = new User("小六", "123456", 26, true);
User user4 = new User();
return Lists.newArrayList( user, user1, user2, user4, user3 );
}
}
收集 实体User某个字段
@Test
public void collectEntityAttribute() {
List<User> users = User.getUserList();
// 收集 用户名属性
List<String> collect = users.stream().map(User::getUsername).collect(Collectors.toList());
collect.stream().forEach(System.out::println);
}
过滤
@Test
public void filterAndCollectEntityAttribute() {
List<User> users = User.getUserList();
// 收集 用户名属性
List<String> collect = users.stream().map(User::getUsername).filter(StringUtils::isNotBlank).collect(Collectors.toList());
collect.stream().forEach(System.out::println);
// 或者
System.out.println("=========");
List<String> collect1 = users.stream().filter(StreamTest::entityIsNotNull).map(User::getUsername).collect(Collectors.toList());
collect1.stream().forEach(System.out::println);
}
public static boolean entityIsNotNull(User u) {
if (StringUtils.isNotBlank(u.getUsername())) {
return true;
}
return false;
}
案例2
@Test
public void filterAndCollectEntityAttribute2() {
List<User> users = User.getUserList();
// 收集
List<String> collect1 = users.stream().filter(
user -> StringUtils.isNotBlank(user.getUsername()) && user.getAge() >= 25)
.map(User::getUsername).collect(Collectors.toList());
collect1.stream().forEach(System.out::println);
}
转化数据类型
将password 从string类型转化成 int类型
@Test
public void typeTrans() {
List<User> users = User.getUserList();
// 收集
List<Long> collect1 = users.stream().filter(StreamTest::entityIsNotNull).map(User::getPassword)
.map(Long::valueOf).collect(Collectors.toList());
collect1.stream().forEach(System.out::println);
}
分组
@Test
public void testGroupBy() {
List<User> users = User.getUserList();
Map<Integer, List<User>> collect = users.stream().filter(StreamTest::entityIsNotNull)
.collect(Collectors.groupingBy(User::getAge));
System.out.println(1);
}
小总结
知 道 的 越 多 , 不 知 道 的 越 多 , 希 望 对 你 有 帮 助 ! 连 更 中 \color{red}知道的越多,不知道的越多,希望对你有帮助!连更中 知道的越多,不知道的越多,希望对你有帮助!连更中