解释一下下面的Java代码
时间: 2023-07-09 16:20:20 浏览: 44
下面是一段Java 8的代码,它使用Stream API对包含多个Person对象的List进行操作:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static void main(String[] args) {
List<Person> persons = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35),
new Person("David", 40)
);
// 1. 获取所有人的姓名,并用逗号分隔
String names = persons.stream().map(Person::getName).collect(Collectors.joining(", "));
System.out.println(names);
// 2. 获取所有人的年龄,并计算平均值
double averageAge = persons.stream().mapToInt(Person::getAge).average().getAsDouble();
System.out.println(averageAge);
// 3. 获取年龄大于30的人的姓名,并用逗号分隔
String namesOver30 = persons.stream().filter(p -> p.getAge() > 30).map(Person::getName).collect(Collectors.joining(", "));
System.out.println(namesOver30);
}
}
```
这段代码定义了一个Person类,它包含姓名和年龄两个属性。然后定义了一个包含多个Person对象的List。
接下来,我们使用Stream API对该List进行了如下三个操作:
1. 获取所有人的姓名,并用逗号分隔。使用map()方法将每个Person对象映射为姓名,然后使用joining()方法将结果拼接成一个字符串。
2. 获取所有人的年龄,并计算平均值。使用mapToInt()方法将每个Person对象映射为年龄,然后使用average()方法计算平均值。
3. 获取年龄大于30的人的姓名,并用逗号分隔。使用filter()方法过滤出年龄大于30的Person对象,然后再使用map()方法将每个Person对象映射为姓名,最后使用joining()方法拼接结果。
最后输出了这三个操作的结果。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)