java8 stream 集合统计例子
时间: 2023-10-14 18:29:47 浏览: 81
好的,关于 Java8 Stream 集合统计例子,以下是一个简单的示例:
假设您有一个包含员工信息的列表,您想要统计员工的薪资总和以及平均薪资。可以使用 Stream api 来实现这个功能,示例如下:
```java
List<Employee> employees = // 获取员工列表
// 统计薪资总和
double totalSalary = employees.stream()
.mapToDouble(Employee::getSalary)
.sum();
// 统计平均薪资
double averageSalary = employees.stream()
.mapToDouble(Employee::getSalary)
.average()
.orElse(0.0);
System.out.println("薪资总和:" + totalSalary);
System.out.println("平均薪资:" + averageSalary);
```
请注意,此示例仅用于说明如何使用 Stream api 进行统计。具体实现可能因您的数据模型而异。希望这能帮助到您。
相关问题
java8 stream 集合多个字段例子
可以给您举一个Java8 Stream集合多个字段的例子。假设我们有一个Person类,有name、age和city三个字段,我们希望通过Stream对List进行排序,优先按照city升序排序,city相同的再按照age降序排序。代码如下:
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 25, "New York"));
persons.add(new Person("Tom", 30, "Beijing"));
persons.add(new Person("Bob", 35, "New York"));
persons.add(new Person("Jack", 30, "Beijing"));
List<Person> sortedPersons = persons.stream()
.sorted(Comparator.comparing(Person::getCity)
.thenComparing(Comparator.comparing(Person::getAge).reversed()))
.collect(Collectors.toList());
这样就可以得到按照city升序和age降序排序后的List了。
java8 stream排序集合
在Java 8中,你可以使用`Stream`来对集合进行排序。下面是一个示例,展示了如何`Stream`对一个整数集合进行排序:
```java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class StreamSorting {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
numbers.add(1);
numbers.add(10);
// 使用Stream排序
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println("排序前的集合:" + numbers);
System.out.println("排序后的集合:" + sortedNumbers);
}
}
```
在上面的例子中,首先创建一个整数集合`numbers`,然后使用`stream()`方法将其转换为一个`Stream`对象。接着,使用`sorted()`方法对元素进行排序,该方法会返回一个已排序的`Stream`对象。最后,使用`collect()`方法将排序后的元素收集到一个新的`List`中。
在控制台上,你将看到排序前和排序后的集合输出结果。
如果你想要按照自定义的排序规则进行排序,可以传递一个自定义的比较器给`sorted()`方法。例如,如果你想按照数字从大到小的顺序排序,可以使用以下代码:
```java
List<Integer> sortedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
```
这里使用了`Comparator.reverseOrder()`方法来创建一个逆序的比较器。
相关推荐
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)