📅  最后修改于: 2023-12-03 14:42:16.131000             🧑  作者: Mango
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 元素的列表进行排序。但如果需要排序的元素不可比较,我们需要创建一个自定义比较器。以上就是一个简单的浮点数数组排序程序的实现。