java对double数组排序示例分享


在Java中,对`double`数组进行排序,你可以使用`Arrays.sort()`方法,但这通常用于对象数组或包装类(如`Double`)数组。由于`double`是基本数据类型,直接对它进行排序需要一些额外的步骤,比如转换为`Double`对象的数组。不过,为了简洁和效率,我们可以使用`Arrays.stream()`方法结合`boxed()`和`sorted()`来实现对`double`数组的排序,但请注意,这将返回一个`Stream`,如果你需要`double`数组,还需要进行转换。

下面是一个完整的示例,展示了如何对`double`数组进行排序,并最终得到一个排序后的`double`数组:


import java.util.Arrays;
import java.util.stream.DoubleStream;

public class DoubleArraySortExample {
    public static void main(String[] args) {
        double[] arr = {3.14, 1.59, 2.65, 3.58, 1.41};

        // 使用流对double数组进行排序
        double[] sortedArr = DoubleStream.of(arr)
                .boxed() // 将double转换为Double
                .sorted() // 对Double对象进行排序
                .mapToDouble(Double::doubleValue) // 将Double对象转换回double
                .toArray(); // 生成排序后的double数组

        // 打印排序后的数组
        System.out.println(Arrays.toString(sortedArr));
    }
}

这段代码首先创建了一个`double`数组`arr`。然后,它使用`DoubleStream.of(arr)`将这个数组转换为一个`DoubleStream`,接着使用`boxed()`将流中的`double`值装箱为`Double`对象,以便能够使用`sorted()`方法进行排序。排序后,使用`mapToDouble(Double::doubleValue)`将`Double`对象流转换回`double`流,并最终通过`toArray()`方法生成一个新的`double`数组`sortedArr`。最后,使用`Arrays.toString()`方法打印出排序后的数组。