将修复值添加到bigdecimal列表中

Sne*_*tel 4 java bigdecimal java-8

我想将修正值加到大小数列表中.让我说我有下面的大小数列表与值

[10, 20, 30, 40]
Run Code Online (Sandbox Code Playgroud)

现在想要添加修复值,让我们10将每个项目说成列表,这样结果列表就是

[20, 30, 40, 50]
Run Code Online (Sandbox Code Playgroud)

目前的做法:

public static void main(String... args) {
        List<BigDecimal> bigDecimals = new ArrayList<>();

        bigDecimals.add(new BigDecimal(10));
        bigDecimals.add(new BigDecimal(20));
        bigDecimals.add(new BigDecimal(30));
        bigDecimals.add(new BigDecimal(40));
        System.out.println(bigDecimals);

        for(int i=0;i<bigDecimals.size();i++)
        {
            bigDecimals.set(i, bigDecimals.get(i).add(new BigDecimal("10")));
        }

        System.out.println(bigDecimals);
    }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法或替代方式使用Java 8?

Mis*_*sha 5

在java 8中,它就像它一样简单

bigDecimals.replaceAll(BigDecimal.TEN::add);
Run Code Online (Sandbox Code Playgroud)

请参阅的javadocList#replaceAll

  • 要减去TEN,您需要写出lambda表达式`d - > d.subtract(TEN)`或使用`TEN.negate():: add`.这是因为加法是可交换的,而减法则不是. (3认同)