gpt4 book ai didi

java - 使用插入排序比较 ArrayList 中的对象

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:22 24 4
gpt4 key购买 nike

这就是我感到困惑的地方。在我的主要方法中,我有大量的Faculty 对象。除了具有FacultyList Arraylist 之外。

 ArrayList<Faculty> FacultyList = new ArrayList<>();

Faculty faculty1 = new Faculty(fName, "Bob", age, department, position);
Faculty faculty2 = new Faculty(fName, "Anderson", age, department, position);
Faculty faculty3 = new Faculty(fName, "Yvetal", age, department, position);
Faculty faculty4 = new Faculty(fName, "Thompson", age, department, position);

FacultyList.add(faculty1);
FacultyList.add(faculty2);
FacultyList.add(faculty3);
FacultyList.add(faculty4);

现在的情况是,我需要创建一个方法,或者只是将代码放入主程序中以根据姓氏进行插入排序。

我以前也有过这个,但它没有改变任何东西。

   private static void insertionFaculty(ArrayList<Faculty> array)
{
Faculty temp;
for(int i = 1; i < array.size(); i++)
{
temp = array.get(i);
for(int j = i; j > 0; j--)
{
if(temp.getLastName().compareTo(array.get(j-1).getLastName()) < 0)
{
array.set(j, array.get(j - 1));
}
else
break;
array.set(j, temp);
}
}
}

请帮忙:)

最佳答案

在您的Faculty类中实现compare并通过执行以下操作覆盖compareTo方法,

 public class Faculty implements Comparable
{
String lastName = .................

.....................


public int compareTo(Object o)
{
Faculty faculty = (Faculty)o;
String olastName = faculty.getLastName();

return lastName.compareTo(olastName);
}
}

然后你需要做的就是在你的FacultyList上调用Arrays.sort,这应该按姓氏排序,

Arrays.sort(FacultyList);

关于java - 使用插入排序比较 ArrayList 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882942/

24 4 0