Java 在数组的数组中存储对象
我有一个关于我需要完成的作业的问题。基本上,我需要将坐标存储在它们各自的对象中,并将它们存储在数组中。有多组坐标都需要一个单独的数组,所有这些数组都需要存储在一个数组中 这是我尝试做的简单版本,使用3个类:Java 在数组的数组中存储对象,java,arrays,object,Java,Arrays,Object,我有一个关于我需要完成的作业的问题。基本上,我需要将坐标存储在它们各自的对象中,并将它们存储在数组中。有多组坐标都需要一个单独的数组,所有这些数组都需要存储在一个数组中 这是我尝试做的简单版本,使用3个类: package test2; import java.io.PrintStream; //import java.util.Scanner; public class Test { PrintStream out; Test(){ out = new PrintStream
package test2;
import java.io.PrintStream;
//import java.util.Scanner;
public class Test {
PrintStream out;
Test(){
out = new PrintStream(System.out);
}
Coordinate[] row = new Coordinate[5];
CoordinateRow[] main = new CoordinateRow[10];
void start(){
row[0] = new Coordinate(4, 9);
row[1] = new Coordinate(4, 1);
row[2] = new Coordinate(0, 4);
main[0] = new CoordinateRow(row);
row[0] = new Coordinate(5, 3);
row[1] = new Coordinate(7, 2);
row[2] = new Coordinate(4, 8);
main[1] = new CoordinateRow(row);
out.println(main[0].row[0].y);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test().start();
}
}
package test2;
public class Coordinate{
int x;
int y;
Coordinate(int x, int y){
this.x = x;
this.y = y;
}
}
当我在print语句中改变数组中的值时,它总是显示插入的最后一组坐标
我希望有人能解释一下我做错了什么。您使用的是同一个数组行,这不起作用,因为传递的是引用而不是值。您应该创建新的数组。main[0]和main[1]都包含相同的引用
SubClass[] row = new SubClass[5];
SubClass[] row2 = new SubClass[5];
SubClass2[] main = new SubClass2[10];
void start(){
row[0] = new SubClass(4, 9);
row[1] = new SubClass(4, 1);
row[2] = new SubClass(0, 4);
main[0] = new SubClass2(row);
row2[0] = new SubClass(5, 3);
row2[1] = new SubClass(7, 2);
row2[2] = new SubClass(4, 8);
main[1] = new SubClass2(row2);
out.println(main[0].row[0].y);
}
这只是代码的一部分…您没有向我们展示真正的代码,您向我们展示的是不可编译的代码,代码没有缩进,因此很难阅读,而且名称选择子类和子类2也很糟糕,很难理解这些类的子类是什么。您到底需要什么?你在哪里更改x和y值?对不起,我指的是数组索引。我将名称更改为坐标和坐标。坐标保存坐标的x和y值,坐标创建一组坐标。要解释赋值的确切含义有点困难,不过还是要谢谢你的帮助。这是一个任务:从第一行的坐标开始,在后面添加第二行的坐标,然后在前面添加第三行的坐标等等。为这个任务创建一个新的坐标和CoordinateRow类。后一个类具有在前面或后面添加坐标的方法,以及在前面或后面添加单个坐标的方法。上面给出了几行坐标,如:5,4,9,8,7希望这能澄清
SubClass[] row = new SubClass[5];
SubClass[] row2 = new SubClass[5];
SubClass2[] main = new SubClass2[10];
void start(){
row[0] = new SubClass(4, 9);
row[1] = new SubClass(4, 1);
row[2] = new SubClass(0, 4);
main[0] = new SubClass2(row);
row2[0] = new SubClass(5, 3);
row2[1] = new SubClass(7, 2);
row2[2] = new SubClass(4, 8);
main[1] = new SubClass2(row2);
out.println(main[0].row[0].y);