假设我在Java中定义了两个数组。第一个数组有m
个单元格,第二个数组有n
个单元格。假设每个单元格可以具有0
或1
值。
在这个程序中,第一个数组的每个单元都将连接第二个数组的一个单元,但是我们不知道哪个单元将连接到第二个数组的哪个单元(这个连接完全合乎逻辑,例如我们只是知道array1[3]
与array2[7]
)相关。
所以现在我想为这些关系中的每一个定义一个事件处理程序,因此当其中一个单元格从1波动到0时,其配对单元格会发生波动。实际上我想以运行时和动态的方式定义事件处理程序,因为在它之前,我不知道array1
中的哪个单元格将与array2
中的哪个单元格配对
有没有解决方案?
如果您认为我可以在没有动态事件处理程序的情况下解决此问题,请告诉我您的解决方案。
答案 0 :(得分:1)
这是一种在不使用事件处理程序的情况下解决此问题的方法。看看这是否适用于您正在做的事情。
首先,让我们使用两个m x 1
和n x 1
的二维数组,而不是两个数组。
int[][] array1 = new int[m][];
int[][] array2 = new int[n][];
for (int i = 0; i < m; i++)
array1[i] = new int[] { /* your code */ ? 1 : 0 };
for (int i = 0; i < n; i++)
array2[i] = array1[ /* your code */ ];
第一个/* your code */
是您选择将1
或0
放入array1
的每个元素的条件。第二个/* your code */
是确定array1
的哪个元素与array2
的每个元素相对应的方法。
现在array2
中的每个元素也是array1
的元素,因此当您将其中一个数组中的值从0
更新为1
时,它也是在另一个数组中更新。
array2[7] = array1[3];
array1[3][0] = 0;
System.out.println(array2[7][0]); // prints "0"
array1[3][0] = 1;
System.out.println(array2[7][0]); // prints "1"