按字母顺序对对象的ArrayList进行排序
我必须创建一种方法,该方法根据电子邮件按字母顺序对对象的 ArrayList
进行排序,然后打印排序后的数组。我在排序时遇到的麻烦。我已经对其进行了研究并尝试使用,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");
}
回答:
排序部分可以通过实现custom来完成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));
以上是 按字母顺序对对象的ArrayList进行排序 的全部内容, 来源链接: utcz.com/qa/405642.html