list<String>转换成list<student>数据结构
时间: 2023-11-18 11:03:40 浏览: 81
这里假设List<String>中每个字符串包含的信息是学生的姓名和年龄,以逗号分隔。
可以使用Java 8的Stream API来进行转换,具体步骤如下:
1. 定义一个Student类,包含姓名和年龄属性:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法省略
}
```
2. 使用Stream API进行转换:
```java
List<String> stringList = Arrays.asList("Tom,18", "Jerry,20", "Alice,19");
List<Student> studentList = stringList.stream()
.map(s -> s.split(","))
.map(arr -> new Student(arr[0], Integer.parseInt(arr[1])))
.collect(Collectors.toList());
```
首先使用stream()方法将List<String>转换成Stream<String>,然后使用map()方法将每个字符串转换成一个String[]数组,其中第一个元素是姓名,第二个元素是年龄。接着使用map()方法将每个String[]数组转换成一个Student对象,最后使用collect()方法将Stream<Student>转换成List<Student>。
3. 完整代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("Tom,18", "Jerry,20", "Alice,19");
List<Student> studentList = stringList.stream()
.map(s -> s.split(","))
.map(arr -> new Student(arr[0], Integer.parseInt(arr[1])))
.collect(Collectors.toList());
System.out.println(studentList);
}
}
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法省略
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
输出结果:
```
[Student{name='Tom', age=18}, Student{name='Jerry', age=20}, Student{name='Alice', age=19}]
```
阅读全文