gpt4 book ai didi

java - 使用 collections.sort 按字母顺序对构造对象列表进行排序

转载 作者:行者123 更新时间:2023-12-01 22:53:07 27 4
gpt4 key购买 nike

我需要使用 CompareTo() 命令获取对象集合,然后将它们存储在列表中,然后使用 collections.sort() 命令按姓氏字母顺序对它们进行排序,然后按名字排序(如果姓氏不够强,然后在最后打印出整个列表。

这是我到目前为止的代码:

package sortlab;
import java.io.*;
import java.util.*;
public class SortLab {
public static void main(String[] args) throws Exception {
File youSaidUseOurRelativeFileNameForStudentData =
new File("C:/My192/SortLabProj/src/sortlab/student.data");
Scanner sc = new Scanner(youSaidUseOurRelativeFileNameForStudentData);
ArrayList<Student> StudentList = new ArrayList<Student>();
while (sc.hasNextLine()) {
Student testStudent = new Student(sc.next(), sc.next(), sc.next());
sc.nextLine();
StudentList.add(testStudent);
}
}

}

下一个类:

package sortlab;
import java.util.*;
class Student implements Comparable<Student> {

private String first;
private String last;
private String address;

public Student(String f, String l, String a) {
first = f;
last = l;
address = a;
}

@Override
public int compareTo(Student other) {
if (last.hashCode() > other.last.hashCode()) return 1;
if (last.hashCode() < other.last.hashCode()) return -1;
if (first.hashCode() > other.first.hashCode()) return 1;
if (first.hashCode() < other.first.hashCode()) return -1;
return 0;
}

}

最佳答案

如果您想以 ASCII 方式比较它们,请使用 String.compareTo 方法。我永远不会想到比较 hashCode。

如果你想忽略大小写,可以使用String.compareToIgnoreCase

关于java - 使用 collections.sort 按字母顺序对构造对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com