JAVA 对象类型list转换为多个属性的对象list
在JAVA编程中,经常会遇到将一个对象类型的list转换为多个属性的对象list的需求。例如,我们有一个存储学生信息的list,每个学生对象包含姓名、年龄和班级三个属性,我们希望将这个list转换为一个新的list,每个元素是一个包含姓名、年龄和班级属性的对象。本文将向大家介绍一种实现这个转换的方法。
前提条件
在开始之前,我们需要先定义一个学生对象,包含姓名、年龄和班级三个属性,并为该对象编写相应的getter和setter方法。
public class Student {
private String name;
private int age;
private String className;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
}
转换方法
我们可以使用JAVA的Stream API来实现这个转换。Stream API提供了一种更加简洁和优雅的方式来处理集合数据。
首先,我们需要将学生信息的list转换为一个Stream对象,然后使用map
方法对每个学生对象进行转换,并返回一个新的Stream对象。在map
方法中,我们可以使用Lambda表达式来定义转换的逻辑。最后,我们使用collect
方法将Stream对象转换为一个新的list。
下面是转换的代码示例:
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建一个存储学生信息的list
List<Student> students = createStudents();
// 将学生信息的list转换为多个属性的对象list
List<Info> infos = students.stream()
.map(student -> {
Info info = new Info();
info.setName(student.getName());
info.setAge(student.getAge());
info.setClassName(student.getClassName());
return info;
})
.collect(Collectors.toList());
// 打印转换结果
for (Info info : infos) {
System.out.println(info.getName() + " " + info.getAge() + " " + info.getClassName());
}
}
private static List<Student> createStudents() {
// 创建几个学生对象并添加到list中
List<Student> students = new ArrayList<>();
Student student1 = new Student();
student1.setName("张三");
student1.setAge(18);
student1.setClassName("一班");
students.add(student1);
Student student2 = new Student();
student2.setName("李四");
student2.setAge(19);
student2.setClassName("二班");
students.add(student2);
Student student3 = new Student();
student3.setName("王五");
student3.setAge(20);
student3.setClassName("三班");
students.add(student3);
return students;
}
}
class Info {
private String name;
private int age;
private String className;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
}
在上面的例子中,我们首先创建了一个存储学生信息的list,并通过createStudents
方法初始化了几个学生对象。接下来,我们使用Stream API将学生信息的list转换为多个属性的对象list。最后,我们通过遍历新的list,将转换结果打印出来。
运行结果
运行上述代码,将会得到如下输出:
张三 18 一班
李四 19 二班
王五 20 三班
总结
通过JAVA的Stream API,我们可以很方便地将一个对象类型的list转换为多个属性的对象list。使用Stream API可以让我们的代码更加简洁和易读,提高开发效率。
希望本文对你理解JAVA对象类型list转换为多个属性