java bigdecimal 排序
时间: 2023-06-14 18:02:38 浏览: 178
用 Java/SpringBoot/Hibernate 实现一个 RestServer,支持对整型类型的数值进行排序
Java中的`BigDecimal`类表示任意精度的十进制数。排序`BigDecimal`对象可以使用`Collections.sort()`方法或者使用`Arrays.sort()`方法。
下面是一个使用`Collections.sort()`方法对`BigDecimal`对象进行排序的示例:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.math.BigDecimal;
public class BigDecimalSortExample {
public static void main(String[] args) {
List<BigDecimal> list = new ArrayList<>();
list.add(new BigDecimal("20.00"));
list.add(new BigDecimal("10.50"));
list.add(new BigDecimal("30.10"));
list.add(new BigDecimal("5.75"));
Collections.sort(list);
for (BigDecimal bd : list) {
System.out.println(bd);
}
}
}
```
输出结果为:
```
5.75
10.50
20.00
30.10
```
如果要使用`Arrays.sort()`方法,则需要先将`BigDecimal`对象转换为`double`类型数组,然后再进行排序,最后再将排序后的结果转换回`BigDecimal`对象。
```java
import java.util.Arrays;
import java.math.BigDecimal;
public class BigDecimalSortExample {
public static void main(String[] args) {
BigDecimal[] arr = { new BigDecimal("20.00"), new BigDecimal("10.50"),
new BigDecimal("30.10"), new BigDecimal("5.75") };
double[] doubleArr = Arrays.stream(arr)
.mapToDouble(BigDecimal::doubleValue)
.toArray();
Arrays.sort(doubleArr);
BigDecimal[] sortedArr = Arrays.stream(doubleArr)
.mapToObj(BigDecimal::valueOf)
.toArray(BigDecimal[]::new);
for (BigDecimal bd : sortedArr) {
System.out.println(bd);
}
}
}
```
输出结果与前面的示例相同。
阅读全文