Dies ist meine beste Vermutung an, was Sie wollen die ursprüngliche Array-Struktur in Java imitieren sie als 1 indiziertes Array mit
public class OneIndexed2DArray {
int[][] indexedArray;
public OneIndexed2DArray(int row, int col)
{
indexedArray = new int[row + 1][col + 1];
}
public int GetValue(int row, int col) throws ArrayIndexOutOfBoundsException
{
if(row == 0 || col == 0)
{
throw new ArrayIndexOutOfBoundsException();
}
else
return indexedArray[row][col];
}
public void SetValue(int row, int col, int value) throws ArrayIndexOutOfBoundsException
{
if(row == 0 || col == 0)
{
throw new ArrayIndexOutOfBoundsException();
}
else
indexedArray[row][col] = value;
}
}
es dann schaffen, wie so
int [] [] myarray = neuer int [2] [3];
wird
OneIndexed2DArray myarray = new OneIndexed2DArray(2, 3);
auf einen Wert [1] [1] = 1
myarray.SetValue(1, 1, 1);
Erhalten Sie diesen Wert
int theValue = myarray.GetValue(1,1);
Löst eine Ausnahme aus, wenn 0 als ein verwendet wird, Index, um sich so zu verhalten, als hätte das 2D-Array keinen Index
myarray.SetValue(0, 1, 5) returns ArrayIndexOutOfBoundsException
myarray.GetValue(1, 0) returns ArrayIndexOutOfBoundsException
Sie müssen mehr Funktionalität hinzufügen, um Dinge wie die Größe usw. zu bekommen, aber das sollte Ihnen den Anfang machen.
Sie nicht. So funktioniert Java. Ändern Sie intern die Anzeigewerte. – chrylis
Ich würde eine Klasse erstellen, die ein 2D-Array von Ganzzahlen enthält und Indexierung ab 1 verwendet –