Java8 使用stream().map()提取List对象的某一列值及去重
一、对象类Userpackage com.example.listdemo.entity; import lombok.Data; import java.time.LocalDate; import java.util.List; @Data public class User { private String name; private String jobNumber; private Integer age; private Boolean gender; private Double height; private LocalDate birthday; public User(String name, String jobNumber, Integer age, Boolean gender, Double height, LocalDate birthday){ this.name = name; this.jobNumber = jobNumber; this.gender = gender; this.age = age; this.height = height; this.birthday = birthday; } public static void printUsers(List二、测试数据list){ System.out.println("[姓名]tt[工号]tt[性别]tt[年龄]tt[身高]tt[生日]"); System.out.println("-----------------------------------------------------------------------"); list.forEach(u-> System.out.println(printValue(u))); System.out.println(" "); } public static String printValue(User user){ String str=String.format("%sttt%stt%stt%sttt%stt%s", user.name,user.jobNumber,user.gender.toString(),user.age.toString(), user.height.toString(),user.birthday.toString()); return str; } }
//构建测试数据 List三、提取某一列list = new ArrayList (); list.add(new User("张三","000001",26,true,1.76, LocalDate.of(1996,1,18))); list.add(new User("小莉","000002",21,false,1.61, LocalDate.of(2001,1,18))); list.add(new User("李四","000003",22,true,1.83, LocalDate.of(2000,1,18))); list.add(new User("程曦","000004",20,false,1.64, LocalDate.of(2002,1,18))); list.add(new User("喜喜","000005",20,false,1.67, LocalDate.of(2002,1,18)));
//1.提取某一列 List四、提取age列并去重(使用distinct()函数)nameList = list.stream().map(User::getName).collect(Collectors.toList()); System.out.println(JSON.toJSONString(nameList));
//2.从列表中提取age并去重 List五、完成代码ageList = list.stream().map(User::getAge).distinct().collect(Collectors.toList()); System.out.println(JSON.toJSONString(ageList));
package com.example.listdemo.utils; import com.alibaba.fastjson.JSON; import com.example.listdemo.entity.User; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class ListDistinct { public static void main(String[] args) { //构建测试数据 Listlist = new ArrayList (); list.add(new User("张三","000001",26,true,1.76, LocalDate.of(1996,1,18))); list.add(new User("小莉","000002",21,false,1.61, LocalDate.of(2001,1,18))); list.add(new User("李四","000003",22,true,1.83, LocalDate.of(2000,1,18))); list.add(new User("程曦","000004",20,false,1.64, LocalDate.of(2002,1,18))); list.add(new User("喜喜","000005",20,false,1.67, LocalDate.of(2002,1,18))); //输出list列表 // User.printUsers(list); //1.提取某一列 List nameList = list.stream().map(User::getName).collect(Collectors.toList()); System.out.println(JSON.toJSONString(nameList)); //2.从列表中提取age并去重 List ageList = list.stream().map(User::getAge).distinct().collect(Collectors.toList()); System.out.println(JSON.toJSONString(ageList)); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)