Java使用stream 从大到小排序并计算平均值

```go
package com.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Test4 {
          
   
	public static void main(String[] args) {
          
   
		List list = new ArrayList<>();
		Scanner scanner = new Scanner(System.in);
		for (int a = 1; a < 6; a++) {
          
   
			System.out.print("请输入第 " + a + " 个值:");
			list.add(scanner.nextint());
		}
		System.out.println(descending(list));
		System.out.println(getAvg(list));
	}
	public static List descending(List list) {
          
   
		list.sort(Collections.reverseOrder());
		//降序           
       return list;        
    }        
  public static Double getAvg(List list) {
          
              
    return list.stream().mapToInt(Integer::new).average().getAsDouble();//求平均值       
  }    
}
public class DoubleStream {
          
   
    public static void main(String[] args) {
          
   
        List<Double> doubleList = new ArrayList<>();
        doubleList.add(1.3);
        doubleList.add(2.2);
        doubleList.add(3.2);
        doubleList.add(4.3);
        doubleList.add(5.2);
        OptionalDouble average = Arrays.stream(doubleList.toArray(new Double[doubleList.size()])).mapToDouble(Number::doubleValue).average();
        System.out.println("平均值:"+average);   
          //第二种方式    
           double average1 = doubleList.stream().collect(Collectors.averagingDouble(Double::doubleValue));     System.out.println("平均值:" + average1);    }
}
经验分享 程序员 微信小程序 职场和发展