【发布时间】:2012-04-30 10:44:11
【问题描述】:
我想将存储在一个 for 循环中的对象数组传递给另一个方法中的第二个 for 循环以显示内容。例如:
public static Student[] add()
for(int i = 0; i < studentArray.length; i++)
{
System.out.print("Enter student name ");
studentName = EasyIn.getString();
System.out.print("Enter student Id ");
studentId = EasyIn.getString();
System.out.print("Enter mark ");
studentMark = EasyIn.getInt();
studentArray[i] = new Student(); //create object
tempObject = new Student(studentName,studentId,studentMark);
place = findPlace(studentArray,studentName, noOfElements);
noOfElements = addOne(studentArray, place, tempObject, noOfElements);
}
到这里
public static void displayAll()
{
Student[] anotherArray = add();
for(int i = 0; i < anotherArray.length ; i++)
{
System.out.print(anotherArray[i].toString());
}
}
在这里的菜单中调用它:
case '3': System.out.println("List All");
displayAll();
EasyIn.pause();
当我在菜单上按 3 时,它只是再次调用 add 方法,但是当我再次将值添加到数组中时,它会显示数组。我只想显示数组
【问题讨论】:
-
您的代码无法编译。在您的
add()方法中,您应该使用大括号{和},它应该是returnStudent[]类型。 -
问题不清楚,你能澄清一下你不想要的行为吗?是每次调用
add()时,您都在重建数组,而您只希望这种情况发生一次? -
它们只是我展示的代码示例,我应该粘贴我所做的所有代码并展示给您吗?
-
@john B 每次我调用 display 方法时,它都会重新构造数组然后显示它。我只是想显示它。
-
如果
add()重构了数组,并且您在displayAll()的开头(在其中)调用add(),则每次调用displayAll()时,您都将重构数组。试试@mcfinnigan 或@Rahul Borkar 解决方案。
标签: java arrays object loops for-loop