【发布时间】:2013-10-28 13:22:13
【问题描述】:
我必须创建一个方法,根据电子邮件按字母顺序对对象的 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");
}
【问题讨论】:
-
不,你需要一个比较器。有什么不好的地方?
-
请遵循 Java 命名约定:
Vehicle而不是vehicle。可能还有printAllSort和vehicleArraySort。 -
有很多教程解释了如何为你的类实现比较器。尝试先检查这个:docs.oracle.com/javase/tutorial/collections/interfaces/…
-
@arshajii 是对的。阅读:Code Conventions for the Java Programming Language.