![](/img/trans.png)
[英]Using a Bubble Sort Algorithm, Sort an arrayList of objects alphabetically
[英]Bubble sort Arraylist of objects
這種方法的目的是根據一個人的ID進行冒泡排序
但是在這個領域:
if (al.get(i).compareTo(al.get(i+1)) > 0 )
它指出:找不到符號-方法compareTo(java.lang.Object)
這是班上人(不是很小惡魔)///
public class Person implements java.io.Serializable
{
String personID;
String name;
byte dayDOB;
byte monthDOB;
short yearDOB;
String telNum;
}
這是排序方法:
public static void sort(ArrayList al)
{
Person p;
String temp;
boolean flag = true;
System.out.println("Database will be sorted acc to ID ");
System.out.println();
while (flag = true)
{
flag = false;
for (int i=0;i<al.size()-1;i++)
{
p = (Person) al.get(i);
if (al.get(i).compareTo(al.get(i+1)) > 0 )
{
temp = al.get(i);
al.set(i,al.get(i+1) );
al.set(i+1, temp);
flag = true;
}
}
}
}
PS; 我是代碼方面的新手,已經修改了此代碼長達7個小時
對象帶有內置的compareTo()方法,但是最好覆蓋默認值。 請參閱Java文檔中的compareTo()
。 那會大大簡化您的代碼。
您的Person類將需要實現Comparable並將其包括在類聲明中。 然后,您可以編寫一個compareTo()
方法,如下所示:
public int compareTo(Person b) {
return this.name.compareTo(b.getName());
}
compareTo()
方法應返回-1、0或1。如果在主類中調用a.compareTo(b)
,則將對象排序到同一位置(即相等)時, compareTo()
應返回零。如果將對象a排序在對象b之前,則為1;如果將對象a排序在b之后,則為1。
您需要確定什么構成同一個人以及應該如何對他們進行排序。 按名稱的字母順序排列? 名稱和編號? 無論您的程序是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.