stream流获取一个集合的两个参数 转为另一个对象的集合
时间: 2024-03-17 21:46:40 浏览: 74
假设有一个包含学生姓名和年龄的集合,要将姓名和年龄组成一个新的学生对象集合,可以使用 Java 8 中的 Stream API。代码可以如下所示:
```java
List<String> names = Arrays.asList("Tom", "Jerry", "Mike");
List<Integer> ages = Arrays.asList(18, 20, 19);
List<Student> students = IntStream.range(0, names.size())
.mapToObj(i -> new Student(names.get(i), ages.get(i)))
.collect(Collectors.toList());
```
其中,`Student` 是一个包含姓名和年龄字段的类,代码如下所示:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
通过 `IntStream.range()` 可以生成一个从 0 到集合大小的整数流,然后通过 `mapToObj()` 将每个整数映射为一个新的 `Student` 对象,最后通过 `collect()` 将所有 `Student` 对象收集到一个新的集合中。
阅读全文