Java 排序方法和toString不工作时出现多个问题
我有一个家庭作业的问题。。我面临的问题是: 我的排序方法有以下错误:Java 排序方法和toString不工作时出现多个问题,java,arrays,sorting,tostring,Java,Arrays,Sorting,Tostring,我有一个家庭作业的问题。。我面临的问题是: 我的排序方法有以下错误: public static void main(String[] args) { Student studentArray[] = new Student[5]; for (int i=0; i < studentArray.length; i++) { studentArray[i] = new Student(); } studentArray[0].id = 5
public static void main(String[] args) {
Student studentArray[] = new Student[5];
for (int i=0; i < studentArray.length; i++) {
studentArray[i] = new Student();
}
studentArray[0].id = 5555;
studentArray[0].name = "Jim Jackson";
studentArray[1].id = 4444;
studentArray[1].name = "Craig Creedmoor";
studentArray[2].id = 3333;
studentArray[2].name = "Bill Biggums";
studentArray[3].id = 2222;
studentArray[3].name = "Frances Freeland";
studentArray[4].id = 1111;
studentArray[4].name = "Leslie Limerick";
for (int i = 0; i<5; i++) {
studentArray[i].toString();
}
sort(studentArray[]);
for (int i = 0; i<5; i++) {
studentArray[i].toString();
}
}
public void sort(int[] studentArray) {
for (int i = 1; i < studentArray.length; i++) {
int currentElement = studentArray[i];
int k;
for (k = i -1; k >=0 && studentArray[k] > currentElement; k--) {
studentArray[k + 1] = studentArray[k];
}
studentArray[k +1] = currentElement;
}
}
- 类型Main中的方法sort(int[])不适用于 参数(类)
- 无法将studentArray解析为类型
- 语法错误,请插入“.class”以完成ArgumentList
public static void main(String[] args) {
Student studentArray[] = new Student[5];
for (int i=0; i < studentArray.length; i++) {
studentArray[i] = new Student();
}
studentArray[0].id = 5555;
studentArray[0].name = "Jim Jackson";
studentArray[1].id = 4444;
studentArray[1].name = "Craig Creedmoor";
studentArray[2].id = 3333;
studentArray[2].name = "Bill Biggums";
studentArray[3].id = 2222;
studentArray[3].name = "Frances Freeland";
studentArray[4].id = 1111;
studentArray[4].name = "Leslie Limerick";
for (int i = 0; i<5; i++) {
studentArray[i].toString();
}
sort(studentArray[]);
for (int i = 0; i<5; i++) {
studentArray[i].toString();
}
}
public void sort(int[] studentArray) {
for (int i = 1; i < studentArray.length; i++) {
int currentElement = studentArray[i];
int k;
for (k = i -1; k >=0 && studentArray[k] > currentElement; k--) {
studentArray[k + 1] = studentArray[k];
}
studentArray[k +1] = currentElement;
}
}
对于本周的实验室,您将使用第23章中讨论的任何排序方法或选择排序对一组对象进行排序。这是你的选择。为您的任务使用以下标准:
对象类应该是具有以下属性的学生:
id:整数
名称:String
编写访问器、mutator、构造函数和toString()
在主测试类中,您将编写主方法并执行以下操作:
创建一个包含至少5个学生的学生对象数组
排序方法必须自己编写并包含在主类中。那种
方法将根据学生id进行排序
按数组存在时的未排序顺序将其输出
对数组进行排序
输出排序后的数组
这是我的主要课程:
public static void main(String[] args) {
Student studentArray[] = new Student[5];
for (int i=0; i < studentArray.length; i++) {
studentArray[i] = new Student();
}
studentArray[0].id = 5555;
studentArray[0].name = "Jim Jackson";
studentArray[1].id = 4444;
studentArray[1].name = "Craig Creedmoor";
studentArray[2].id = 3333;
studentArray[2].name = "Bill Biggums";
studentArray[3].id = 2222;
studentArray[3].name = "Frances Freeland";
studentArray[4].id = 1111;
studentArray[4].name = "Leslie Limerick";
for (int i = 0; i<5; i++) {
studentArray[i].toString();
}
sort(studentArray[]);
for (int i = 0; i<5; i++) {
studentArray[i].toString();
}
}
public void sort(int[] studentArray) {
for (int i = 1; i < studentArray.length; i++) {
int currentElement = studentArray[i];
int k;
for (k = i -1; k >=0 && studentArray[k] > currentElement; k--) {
studentArray[k + 1] = studentArray[k];
}
studentArray[k +1] = currentElement;
}
}
根据作业说明,这是我从中得到的 您的学生类中需要一个构造函数,您向数组中添加了不正确的对象,您的排序方法也在访问数组中的元素,该元素是“学生”,您将其与类型“int”进行比较。为了解决这个问题,我让student数组中的对象实际访问ID 还有。。。。你的分类方法似乎对我不起作用。说明中说,您可以使用选择排序,这就是我实现的。如果你有问题,请告诉我 这应该行得通,如果不行请告诉我,因为我不知道您的学生类在您的项目中是如何定义的
public static void main(String[] args) {
Student studentArray[] = new Student[5];
studentArray[0] = new Student(5555, "Jim Jackson");
studentArray[1] = new Student(4444, "Craig Creedmor");
studentArray[2] = new Student(3333, "Bill Biggums");
studentArray[3] = new Student(2222, "Frances Freeland");
studentArray[4] = new Student(1111, "Leslie Limerick");
sort(studentArray);
for (int i = 0; i<5; i++) {
System.out.println(studentArray[i].toString());
}
}
public static void sort(Student[] arr) {
for (int i = 0; i < arr.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < arr.length; j++)
if (arr[j].getID() < arr[index].getID())
index = j;
int smallerNumber = arr[index].getID();
String smallerString = arr[index].getName();
arr[index].setID(arr[i].getID());
arr[index].setName(arr[i].getName());
arr[i].setID(smallerNumber);
arr[i].setName(smallerString);
}
}
欢迎来到SO。行应该是
sort(studentArray)代码>但是,如果您希望从本论坛获得更多帮助,请学会正确提问。有很多有用的指南可供使用。一旦您修复了sort
调用的语法,您会发现编译器会抱怨Student[]
参数与sort
方法声明的参数类型int[]
不兼容。你怎么期望一个sort
例程,它是用来对int
s数组进行排序的,用来对Student
s数组进行排序的?它的工作非常出色!