将一个List中某个BigDecimal属性全都除以100组成新的list
时间: 2024-05-10 21:13:54 浏览: 35
好的,这个问题可以回答。您需要遍历原始List,并将每个元素中的BigDecimal属性除以100,然后将新元素添加到新List中。以下是示例代码:
```java
List<YourObject> originalList = ... // 原始List
List<YourObject> newList = new ArrayList<>();
for (YourObject obj : originalList) {
BigDecimal originalValue = obj.getBigDecimalProperty();
BigDecimal dividedValue = originalValue.divide(new BigDecimal(100));
obj.setBigDecimalProperty(dividedValue);
newList.add(obj);
}
```
现在,您可以使用新List,其中所有元素的BigDecimal属性已除以100。
相关问题
将一个List中某个BigDecimal属性全都除以100组成新的list,用Stream流实现
好的,我理解了你的要求,以下是代码:
```java
List<BigDecimal> bigDecimalList = Arrays.asList(BigDecimal.valueOf(100), BigDecimal.valueOf(200), BigDecimal.valueOf(300));
List<BigDecimal> newBigDecimalList = bigDecimalList.stream()
.map(bigDecimal -> bigDecimal.divide(BigDecimal.valueOf(100)))
.collect(Collectors.toList());
System.out.println(newBigDecimalList); // 输出 [1, 2, 3]
```
以上代码将一个List中的BigDecimal属性全都除以100,然后组成一个新的List。使用Stream流的map方法将每个BigDecimal对象除以100,最后使用collect方法将结果收集成List。
list中某个BigDecimal值有null值相加
如果在一个`List<BigDecimal>`中有`null`值,那么在对这个`List`进行相加操作时,需要先将`null`值转换为`BigDecimal.ZERO`,否则会抛出`NullPointerException`异常。可以使用以下代码来实现:
```java
List<BigDecimal> list = new ArrayList<>();
list.add(BigDecimal.TEN);
list.add(null);
list.add(BigDecimal.valueOf(5));
BigDecimal sum = list.stream()
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println(sum); // 输出 15
```
在这里,使用了Java 8中的Stream API,先使用`filter`方法过滤掉`null`值,然后使用`reduce`方法对`List`中的元素进行累加,使用`BigDecimal.ZERO`作为初始值。