0

假设我在 Java 中定义了两个数组。第一个数组有m单元格,第二个有n单元格。假设每个单元格都可以有一个01值。

在这个程序中,第一个数组的每个单元格都将连接第二个数组的一个单元格,但我们不知道哪个单元格将连接到第二个数组的哪个单元格(这种连接是完全合乎逻辑的,例如我们只知道array1[3]相关到array2[7])。

所以现在我想为这些关系中的每一个定义一个事件处理程序,所以当其中一个单元格从 1 波动到 0 时,它的配对单元格也会波动。实际上,我想以运行时和动态方式定义事件处理程序,因为在此之前,我不知道其中的哪一个单元格array1将与array2.

有什么解决办法吗?

如果您认为我可以在没有动态事件处理程序的情况下解决此问题,请告诉我您的解决方案。

4

1 回答 1

1

这是一种无需使用事件处理程序即可解决此问题的方法。看看这是否适用于您正在做的事情。

首先,我们使用两个二维数组,而不是两个数组,它们是m x 1n 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 */是您选择将其中一个10放入每个元素的条件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"
于 2013-11-07T18:17:56.370 回答