Colección de listas estadísticas tipo numérico máximo, mínimo, promedio y suma

1. Método de tipo de objeto ordinario

aplicaciones.java

@Data
@EqualsAndHashCode(callSuper = false)
@TableName("apps")
public class Apps implements Serializable {
    
    

    private static final long serialVersionUID = 1L;

    private Integer id;

    private String appName;

    private String url;

    private String country;

    public Apps(Integer id, String appName) {
    
    
        this.id = id;
        this.appName = appName;
    }
}

código principal

   public static void main(String[] args) {
    
    
        // 含普通类型的对象
        ArrayList<Apps> list = new ArrayList<>();
        list.add(new Apps(1, "魅言倾馨"));
        list.add(new Apps(2, "子非我鱼"));
        list.add(new Apps(3, "冷言"));
        list.add(new Apps(4, "浅语"));
        int sum = list.stream().mapToInt(Apps::getId).sum(); // 求和
        int max = list.stream().mapToInt(Apps::getId).max().getAsInt();// 求最大
        int min = list.stream().mapToInt(Apps::getId).min().getAsInt();// 求最小
        double avg = list.stream().mapToInt(Apps::getId).average().getAsDouble();// 求平均
        System.out.println("和:"+sum);
        System.out.println("最大:"+max);
        System.out.println("最小:"+min);
        System.out.println("平均:"+avg);

}

Resultados de:
Insertar descripción de la imagen aquí

2. Método de doble tipo

Aquí no solo se puede usar double, sino también int y long.

código principal

   public static void main(String[] args) {
    
    
        // double类型
        ArrayList<Double> list2 = new ArrayList<>();
        list2.add(23.1);
        list2.add(42.2);
        list2.add(63.3);
        list2.add(53.4);
        double sum2 = list2.stream().mapToDouble(Double::doubleValue).sum(); // 求和
        double max2 = list2.stream().mapToDouble(Double::doubleValue).max().getAsDouble();// 求最大
        double min2 = list2.stream().mapToDouble(Double::doubleValue).min().getAsDouble();// 求最小
        double avg2 = list2.stream().mapToDouble(Double::doubleValue).average().getAsDouble();// 求平均
        System.out.println("和:"+sum2);
        System.out.println("最大:"+max2);
        System.out.println("最小:"+min2);
        System.out.println("平均:"+avg2);

}

Resultados de:

Insertar descripción de la imagen aquí

3. Contiene un método de objeto de tipo BigDecimal.

myqxin.java

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Myqxin {
    
    
    private String id;
    private BigDecimal age;
}

código principal

    public static void main(String[] args) {
    
    
        // 含BigDecimal类型的对象
        ArrayList<Myqxin> list3 = new ArrayList<>();
        list3.add(new Myqxin("1", new BigDecimal("34")));
        list3.add(new Myqxin("2", new BigDecimal("52")));
        list3.add(new Myqxin("3", new BigDecimal("13")));
        list3.add(new Myqxin("4", new BigDecimal("62")));
        list3.add(new Myqxin("5", new BigDecimal("81")));
        BigDecimal sum3 = list3.stream().map(Myqxin::getAge).reduce(BigDecimal.ZERO, BigDecimal::add); // 求和
        BigDecimal max3 = list3.stream().max((u1, u2) -> u1.getAge().compareTo(u2.getAge())).get().getAge(); // 最大
        BigDecimal min3 = list3.stream().min((u1, u2) -> u1.getAge().compareTo(u2.getAge())).get().getAge(); // 最小
        System.out.println("和:" + sum3);
        System.out.println("最大:" + max3);
        System.out.println("最小:" + min3);

}

Resultados de:

Insertar descripción de la imagen aquí

4. Método de tipo BigDecimal

código principal

    public static void main(String[] args) {
    
    
        // BigDecimal类型
        ArrayList<BigDecimal> list4 = new ArrayList<>();
        list4.add(new BigDecimal("34"));
        list4.add(new BigDecimal("14"));
        list4.add(new BigDecimal("63"));
        list4.add(new BigDecimal("93"));
        double sum4 = list4.stream().mapToDouble(BigDecimal::doubleValue).sum();// 求和
        double max4 = list4.stream().mapToDouble(BigDecimal::doubleValue).max().getAsDouble();// 求最大
        double min4 = list4.stream().mapToDouble(BigDecimal::doubleValue).min().getAsDouble();// 求最小
        double avg4 = list4.stream().mapToDouble(BigDecimal::doubleValue).average().getAsDouble();// 求平均
        System.out.println("和:" + sum4);
        System.out.println("最大:" + max4);
        System.out.println("最小:" + min4);
        System.out.println("平均:" + avg4);
    }

Resultados de:

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_45752401/article/details/123652359
Recomendado
Clasificación