Я хочу выполнить поиск по массиву объектов 2d и разделить объекты на основе поля класса объектов, теста 1 и теста 2 соответственно. Затем я хочу записать индексы объекта 2d массива в два массива 1d как x, y. Я хотел бы иметь две пары из двух массивов 1d для каждого объекта, так что я могу рассчитать расстояние между тестом 1 и тестом 2.Сохранение массива 2d объектов для 1d массивов
Моя проблема/вопрос Когда я запускаю цикл на одном из массивов 1d, чтобы распечатать их значения, чтобы проверить их, они заполнены связкой нулей, и их не должно быть. Я включил комментарии в код, чтобы помочь уточнить.
public class gameboard2 {
public static void main(String[] args) {
Character2 objectArray[][] = new Character2[8][8];
int test1X1[] = new int[100];
int test1Y1[] = new int[100];
int test2X2[] = new int[100];
int test2Y2[] = new int[100];
int junkX1Array[] = new int[100];
int junkY1Array[] = new int[100];
for (int row = 0; row < objectArray.length; row++){
for(int col = 0; col < objectArray.length; col++){
if (row <= 1 && col <= 7){
objectArray[row][col] = new Character2();
objectArray[row][col].setType("Test1");
objectArray[row][col].setIdTest1(row,col);
objectArray[row][col].objectFlag = true;
}
else if ((row == 6 || row == 7) && (col <= 7)){
objectArray[row][col]= new Character2();
objectArray[row][col].setType("Test2");
objectArray[row][col].setIdTest2(row,col);
objectArray[row][col].objectFlag = true;
}
else {
objectArray[row][col]= new Character2();
objectArray[row][col].setType("Test3");
}
}
}
for (int x = 0; x < objectArray.length; x++){
for (int y = 0; y < objectArray.length; y++){
if (objectArray[x][y].getType().compareTo("Test1") == 0){
test1X1[x] = x;
test1Y1[y] = y;
}
if (objectArray[x][y].getType().compareTo("Test2") == 0){
test2X2[x] = x;
test2Y2[y] = y;
System.out.println(test2X2[x]);
//Arrays are filled with 2d array object indices and printed as they are filled. These values appear correct. However when you print from the array (see below) its filled with a bunch of zeros.
}
else
junkX1Array[x] = x;
junkY1Array[y] = y;
}
}
System.out.print("Now the newly created array will be printed");
// Array is printed. Values differ.
for (int b = 0; b < test2X2.length; b++)
{
System.out.println(test2X2[b]);
}
}
}
// Это класс объектов.
public class Character2 {
private String id;
private String type;
boolean objectFlag = false;
public void setType(String AssignType) {
type = AssignType;
}
public String getType(){
return type;
}
public String getId(){
return id;
}
public void setIdTest1(int row, int col){
id = ("Test1" + " row: " + row + " col: " + col);
}
public void setIdTest2(int row, int col){
id = ("Test2" + " row: " + row + " col: " + col);
}
}
Является ли количество строк и столбцов равным вам objectArray? – StaticBeagle
Да его 8 на 8 Символьный objectArray [] [] = новый Символ [8] [8]; –
В чем вопрос? –