我必须创建一个方法来排序数组列表根据电子邮件按字母顺序排列对象,然后打印排序后的数组。我在排序时遇到麻烦的部分。我已经研究过并尝试使用Collections.sort(vehiclearray);
但这对我不起作用。我是因为我需要一个叫做比较器的东西,但不知道它是如何工作的。我是否必须使用这些,或者冒泡排序或插入排序之类的东西可以用于这种事情吗?
这是我到目前为止的代码:
public static void printallsort(ArrayList<vehicle> vehiclearray){
ArrayList<vehicle> vehiclearraysort = new ArrayList<vehicle>();
vehiclearraysort.addAll(vehiclearray);
//Sort
for(int i = 0; i < vehiclearraysort.size(); i++)
if ( vehiclearray.get(i).getEmail() > vehiclearray.get(i+1).getEmail())
//Printing
for(i = 0; i < vehiclearraysort.size(); i++)
System.out.println( vehiclearraysort.get(i).toString() + "\n");
}
排序部分可以通过实现自定义来完成Comparator<Vehicle>
.
Collections.sort(vehiclearray, new Comparator<Vehicle>() {
public int compare(Vehicle v1, Vehicle v2) {
return v1.getEmail().compareTo(v2.getEmail());
}
});
这个匿名类将用于排序Vehicle
中的对象ArrayList
根据相应电子邮件的字母顺序排列。
升级到 Java8 还可以让您通过方法引用以更简洁的方式实现这一点:
Collections.sort(vehiclearray, Comparator.comparing(Vehicle::getEmail));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)