[英]Remove decimal points with Stream() instead of using for loop
我试图在不使用 for 循环的情况下从列表元素中删除小数点。 您能否指出一种声明性方法?
List<BigDecimal> numbers = Arrays.asList(new BigDecimal(1.2), new BigDecimal(2.2));
for (int i = 0; i < numbers.size(); i++) {
BigDecimal number = numbers.get(i);
numbers.set(i, number.setScale(0, RoundingMode.FLOOR));
}
您可以使用map
:
List<BigDecimal> numbers = Stream.of(new BigDecimal(1.2), new BigDecimal(2.2))
.map(n -> n.setScale(0, RoundingMode.FLOOR))
.collect(Collectors.toList());
此外,为什么不简单地:
Arrays.asList(new BigDecimal(1.2).setScale(0, RoundingMode.FLOOR, new BigDecimal(2.2).setScale(0, RoundingMode.FLOOR);
您可以执行以下操作,
Arrays.asList(new BigDecimal(1.2), new BigDecimal(2.2)).stream()
.map(num->num.setScale(0, RoundingMode.FLOOR))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.