按字母顺序对对象的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

回到顶部