有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从Java对象计算值?

我有一个Java对象,用于存储项目:

public class PaymentDetailsItem
{
    private String name;
    private String amount;
    private int quantity;
    private String currencyID;

    public PaymentDetailsItem(String name, String amount, int quantity, String currencyID){
        this.name = name;
        this.amount = amount;
        this.quantity = quantity;
        this.currencyID = currencyID;
    }

    ............
}

我使用一个列表来存储几个对象。如何将每个对象存储的总金额汇总到列表中


共 (1) 个答案

  1. # 1 楼答案

    您可以使用Java 8流API并实现如下内容:

    public static void main(String[] args) {
        PaymentDetailsItem payment = new PaymentDetailsItem("test", "100.00", 10, "1");
        PaymentDetailsItem payment2 = new PaymentDetailsItem("test number 2", "250.00", 10, "2");
    
        List<PaymentDetailsItem> payments = new ArrayList<>();
        payments.add(payment);
        payments.add(payment2);
    
        List<String> amounts = payments.stream().map(PaymentDetailsItem::getAmount).collect(Collectors.toList());
        System.out.println("Here we have the extracted List of amounts: " + amounts);
    
        String totalAmount = amounts.stream()
                .reduce((amount1, amount2) -> String.valueOf(Float.valueOf(amount1) + Float.valueOf(amount2))).get();
        System.out.println("Total amount obtained by using .reduce() upon the List of amounts: " + totalAmount);
    
        System.out.println("Or you can do everything at once: " + payments.stream().map(PaymentDetailsItem::getAmount)
                .reduce((amount1, amount2) -> String.valueOf(Float.valueOf(amount1) + Float.valueOf(amount2))).get());
    }
    

    记住为amount属性实现getter