Snehal Patel
Snehal Patel

Reputation: 1330

Adding up fix value into list of bigdecimal

I want to adding up fix value into list of big decimals. lets say i have below list of big decimal with values

[10, 20, 30, 40]

Now want to add fix value lets say 10 into each item into list so resulting list would be

[20, 30, 40, 50]

Current approach :

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);
    }

Is there any better way or alternative way using java 8?

Upvotes: 4

Views: 653

Answers (2)

Misha
Misha

Reputation: 28163

In java 8 it's as simple as

bigDecimals.replaceAll(BigDecimal.TEN::add);

See the javadoc for List#replaceAll

Upvotes: 5

Eugene
Eugene

Reputation: 120978

That's a simple map operation...

bigDecimals.stream().map(bd -> bd.add(BigDecimal.TEN)).forEach(System.out::println);

Upvotes: 1

Related Questions