BigDecimal排序
时间: 2024-09-19 17:07:22 浏览: 46
在Java中,由于`BigDecimal`不是自然排序的,因此直接对其数组进行排序并不像其他基本数据类型那么简单。但你可以使用`Collections.sort()`方法结合自定义的比较器(Comparator)来完成`BigDecimal`数组的排序。以下是一个示例:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
BigDecimal[] bigDecimals = {new BigDecimal("10.5"), new BigDecimal("5.2"), new BigDecimal("9.8"), new BigDecimal("3.1")};
// 自定义比较器
Comparator<BigDecimal> decimalComparator = Comparator.comparing(BigDecimal::doubleValue);
// 使用Collections.sort()进行排序
Arrays.sort(bigDecimals, decimalComparator);
for (BigDecimal num : bigDecimals) {
System.out.println(num);
}
}
}
```
在这个例子中,我们创建了一个`BigDecimal`数组,并通过`Comparator`的构造函数使用`doubleValue()`方法(它将`BigDecimal`转换为`double`进行比较),实现了升序排列。如果你想降序排列,只需将`Comparator.reverseOrder()`传递给`sort()`方法即可。
阅读全文