我想用Java创建2d数组,或者用整数创建矩阵。
我已经做过..但是我仍然不知道如何为行/列分配标签。
我希望能够根据行/列访问矩阵内的任何数字
这是我的Java代码
Gson gson = new Gson();
int[][] data = {{78, 0, 0, 0, 0}, {0, 54, 0, 0, 0}, {0, 0, 12, 0, 0}, {0, 0, 0, 74, 0}, {0, 0, 0, 0, 11}};
String json = gson.toJson(data);
// Convert JSON string into multidimensional array of int.
int[][] dataHeatMap = gson.fromJson(json, int[][].class);
for (int[] i : dataHeatMap) {
for (int j : i) {
System.out.print(j + " ");
}
System.out.println("");
}
return json;
答案 0 :(得分:1)
您可以使用[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppearanceChanged:) name:@"AppleInterfaceThemeChangedNotification" object:nil]
-(void)onAppearanceChanged:(NSNotification *)notificaton
{
// read appearance
}
:
Enum
答案 1 :(得分:0)
使用ENUM
类型,它们确实表示2dim数组的特殊索引。给它们一个名为value
/ name
/ ...的字段,并使用它们在数组中的索引进行创建。然后,您可以通过获取代表数组索引的字母值来轻松地对其进行调用。
它非常易读,ENUM.<VALUE>
并不代表INT
值。因此,这就是您的操作方式。
public enum ROW {
A(0), B(1), C(2), D(3), E(4);
private final int value;
ROW(int value) { this.value = value; }
public int getValue() { return value; }
}
public enum COL {
F(0), G(1), H(2), I(3), J(4);
private final int value;
COL(int value) { this.value = value; }
public int getValue() { return value; }
}
public static void main(String []args){
int[][] matrix = {{78, 0, 0, 0, 0}, {0, 54, 0, 0, 0}, {0, 0, 12, 0, 0}, {0, 0, 0, 74, 0}, {0, 0, 0, 0, 11}};
System.out.println("Value: " + matrix[ROW.A.getValue()][COL.F.getValue()]);
}
我更喜欢上面的方法,因为您可以看到直接发生的事情并可以分配所需的任何值。但是您也可以使用ENUM.ordinal()。
然后data[ROW.a.ordinal()][...]
将为ROW返回0,因为它首先列出。 b将返回1,...仅取决于它们在ENUM
上列出/创建的方式。