📜  java sort arraylist of floats - Java (1)

📅  最后修改于: 2023-12-03 14:42:16.131000             🧑  作者: Mango

Java中对浮点数数组进行排序

Java中的Collections类提供了sort()函数用于对列表进行排序,但它只能对包含Comparable元素的列表进行排序。由于浮点数不是一个可比较元素,因此我们必须为浮点数数组创建一个自定义比较器来进行排序。

创建比较器

我们需要使用Comparator接口来创建我们的自定义比较器。为了对浮点数数组进行排序,我们可以有两种选择:

  • 按照元素大小进行排序;
  • 按照元素的绝对值大小进行排序。

我们将使用第一种选择。下面是一个示例比较器的代码:

import java.util.Comparator;

public class FloatComparator implements Comparator<Float> {
    public int compare(Float f1, Float f2) {
        return Float.compare(f1, f2);
    }
}

这个比较器实现了Comparator接口,并覆盖了compare()方法。它将浮点数f1和f2进行比较,并返回它们之间的大小关系。

对数组进行排序

我们现在可以使用Collections类的sort()函数来对浮点数数组进行排序了。下面是代码片段:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Float> numbers = new ArrayList<Float>();
        numbers.add(5.5f);
        numbers.add(10.0f);
        numbers.add(-2.0f);
        numbers.add(0.5f);

        FloatComparator comparator = new FloatComparator();
        Collections.sort(numbers, comparator);

        System.out.println(numbers);
    }
}

这个程序首先创建了一个包含几个浮点数的列表,然后创建了一个FloatComparator对象。最后,它使用Collections.sort()函数,将比较器传递到该函数中。在函数调用结束之后,列表中的元素会按照大小顺序排列。

总结

Java中使用Collections类的sort()函数可以很容易地对包含 Comparable 元素的列表进行排序。但如果需要排序的元素不可比较,我们需要创建一个自定义比较器。以上就是一个简单的浮点数数组排序程序的实现。