Java 家庭作业帮助。我不得不说;写下;排序我不能使用API排序
我必须编写一个从命令行获取参数的程序。有三节课。主应用程序类,定义名人堂每个成员的类,然后是创建名人堂成员数组的名人堂类。HallOFFameMember类的属性有firstName、lastName、yearIndustried和sport。我必须在HallOfFame类中编写一个排序方法,该方法按导入年份进行排序。我试着用类似的实用程序来实现它,但我认为这不起作用 这里是赋值的一部分,写排序,所以我不能使用Array.sort()或类似的东西 “还要在名为sortMembers的HallOfFame类中定义一个方法,该方法返回一个HallOfFameMember对象数组,该数组包含成员数组中的对象,按归纳年份排序。注意:在sortMembers方法中完成的排序不应使用API中的排序方法。您需要编写自己的排序例程。”(例如,可以接受气泡排序)。” 我不确定如何开始为数组中对象的属性编写排序。如果您能帮助我找到如何执行此操作的方法,我将不胜感激。我发现的一切都指向使用array.sort和compareTo方法,而我无法使用该方法 **编辑**问题是,有人能告诉我在哪里可以阅读或找到如何编写自己的排序以按对象数组中的属性排序的示例吗?我将研究使用comparable的建议,因为这是我最初倾向于的,只是无法完全实现Java 家庭作业帮助。我不得不说;写下;排序我不能使用API排序,java,sorting,Java,Sorting,我必须编写一个从命令行获取参数的程序。有三节课。主应用程序类,定义名人堂每个成员的类,然后是创建名人堂成员数组的名人堂类。HallOFFameMember类的属性有firstName、lastName、yearIndustried和sport。我必须在HallOfFame类中编写一个排序方法,该方法按导入年份进行排序。我试着用类似的实用程序来实现它,但我认为这不起作用 这里是赋值的一部分,写排序,所以我不能使用Array.sort()或类似的东西 “还要在名为sortMembers的HallOf
public class HW3 {
public static void main(String[] args) throws Exception {
if (args.length % 4 != 0) {
throw new Exception(
"First Name, Last Name, Year Inducted, Sport not entered correctly");
}
HallOfFame hallOfFameList = new HallOfFame();
hallOfFameList.setNumberOfMembers(args.length / 4);
HallOfFameMember[] tempMembers = new HallOfFameMember[args.length / 4];
for (int i = 0; i < args.length; i += 4) {
tempMembers[i/4].setFirstName(args[i]);
tempMembers[i/4].setLastName(args[i+1]);
tempMembers[i/4].setYearInducted(Integer.parseInt(args[i+2]));
tempMembers[i/4].setSport(args[i+3]);
}
hallOfFameList.setMembers(tempMembers);
HallOfFameMember[] sortedMembers = null;
hallOfFameList.sortMembers(sortedMembers);
HallOfFame.printReport(sortedMembers);
}
}
public class HallOfFameMember {
private String firstName;
private String lastName;
private String sport;
private int yearInducted;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getSport() {
return sport;
}
public void setSport(String sport) {
this.sport = sport;
}
public int getYearInducted() {
return yearInducted;
}
public void setYearInducted(int yearInducted) {
this.yearInducted = yearInducted;
}
}
public class HallOfFame {
private HallOfFameMember[] members;
private int numberOfMembers;
public HallOfFameMember[] getMembers() {
return members;
}
public void setMembers(HallOfFameMember[] members) {
this.members = members;
}
public int getNumberOfMembers() {
return numberOfMembers;
}
public void setNumberOfMembers(int numberOfMembers) {
this.numberOfMembers = numberOfMembers;
}
public void sortMembers(HallOfFameMember[] sortedMembers){
}
public static void printReport(HallOfFameMember[] print){
System.out.println("Java Sports Hall of Fame Inductees\n\n");
System.out.printf("%-30s\t%-30s\t%-30s\n","Name","Year Inducted","Sport");
for(int i = 0; i < print.length; i++)
System.out.printf("%-30s\t%-30s\t%-30s\n", print[i].getLastName()+","+print[i].getFirstName(), print[i].getYearInducted(), print[i].getSport());
}
}
公共类HW3{
公共静态void main(字符串[]args)引发异常{
如果(args.length%4!=0){
抛出新异常(
“名字、姓氏、入职年份、运动项目输入不正确”);
}
HallOfFame hallOfFameList=新的HallOfFame();
HallofameList.setNumberOfMembers(args.length/4);
HallofameMember[]tempMembers=新的HallofameMember[args.length/4];
对于(int i=0;i
要详细说明我在评论中的陈述:
由于这是家庭作业,我们大多数人会限制我们的建议,但我们可以帮助您解释作业。我在说明中没有看到任何东西阻止您使用比较器或实现可比
,事实上我会做其中一个
但是,你必须编写自己的排序方法,我会这样做,并让它使用Comparator助手类或Comparable接口来帮助排序。我会去维基百科,阅读排序算法,选择最简单的,可能是冒泡排序,因为你不会因为这个任务而被评分,只是在完成一个任务后您可以使用CompareTo,或者更好的Comparator,但您必须使用自己的排序方法。我会查看Wikipedia上的不同排序算法,然后使用最简单的实现,可能是气泡排序。我会使用Comparable或Comparator,然后调用它们的方法(CompareTo或compare)在我的排序方法中。另外:当你在前面声明这是作业,你不是要求直接回答,而是要求解释作业的建议时,请投票。好的。我已经整理好了,或者我是这么想的。但是我有一个新问题。将发布一篇新帖子,因为它与排序/比较无关。Tyvm寻求帮助。