数组如何对Java中的数据集进行排序
我这里有一些数据
VAN,Ford,Transit,7995
VAN,Ford,Transit,8900
VAN,Ford,Transit,6200
我已经拆分了数据,但我需要先从最便宜的货车上订购,我不知道从哪里开始。以下是我目前的代码:
import java.io.BufferedReader;
import java.io.FileReader;
public class Vehicle {
public static void main(String[]args) throws Exception
{
FileReader file = new FileReader("C:/Users/Aaron/Documents/java/car_file.txt");
BufferedReader reader = new BufferedReader(file);
String text = "";
String line = reader.readLine();
while (line!= null)
{
text += line+"\r\n";
line = reader.readLine();
}
System.out.println(text);
}
}
我猜你是如何分类和排序数据的,但我不知道从哪里开始
# 1 楼答案
首先,让我们将文件中的行解析为Car对象,而不是将它们放在一个大字符串中:
现在我们需要对它们进行分类。一种方法是实现一个Comparator。另一个答案描述了另一种方法,即让Car类实现Comparable。我没有选择这个解决方案的原因是,它只允许对汽车进行一次排序。如果你以后还想按其他东西排序,那么使用Comparable是不可能的。因此,使用单独的比较器更松散地耦合,因此提供了更大的灵活性
如果你看一下Comparator的比较方法的JavaDoc(参见上面的链接),它会说:
因此,如果第一个参数小于第二个参数,我们必须返回一个负整数:
现在,您可以对汽车列表进行排序,例如,通过调用Collections.sort
并打印结果:
注意:我在Car中实现了toString,否则上面的代码只会打印cars的对象引用
# 2 楼答案
# 3 楼答案
下面是一个我使用可比较的
}
还有考试班
公共类可比演示{
}
输出:
EmpID 1 艾娜·哈利 Sal20000。0
EmpID 0 艾娜·汤姆 Sal40000。0
EmpID 2 艾娜·麦琪 Sal50000。0
EmpID 3 艾娜·克里斯 Sal70000。0