有没有办法将整个Big Decimal列表强制转换为Long值列表

joh*_*doe 3 java bigdecimal long-integer

如果我有一个ListBigDecimal对象,是有可能强制转换整个列表到ListLong值,而不必每次迭代BigDecimal的对象?

ass*_*ias 5

您将需要以某种方式迭代.如果要"隐藏"迭代,可以使用流:

List<Long> longs = bigs.stream().map(BigDecimal::longValue).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但是后台仍然会有一个迭代.

你提到你不想迭代两次 - 你可以保存long流以供以后使用:

LongStream longs = bigs.stream().mapToLong(BigDecimal::longValue);
Run Code Online (Sandbox Code Playgroud)

并在收集结果之前对该流应用其他操作.

  • 保存流以供以后使用只能使用一次:一旦消耗了流,就无法重用它. (3认同)