Java:围绕二维数组移动
请注意,我已经看到了很多答案,但我还没有看到在阵列中移动的最简单解决方案 我想继续移动到数组中的下一个或上一个元素(行和列)。这意味着,如果我到达任何行或列的末尾,它会将我带到下一行或上一行,相对于数组的初始大小 假设我有一组按钮来处理方向事件(左、右、上和下) 我有:Java:围绕二维数组移动,java,arrays,events,direction,Java,Arrays,Events,Direction,请注意,我已经看到了很多答案,但我还没有看到在阵列中移动的最简单解决方案 我想继续移动到数组中的下一个或上一个元素(行和列)。这意味着,如果我到达任何行或列的末尾,它会将我带到下一行或上一行,相对于数组的初始大小 假设我有一组按钮来处理方向事件(左、右、上和下) 我有: int twoD[][]= new int[3][3]; 输出 0 1 2 3 4 5 6 7 8 我想马上离开 0,1,2,3,4,5,6,7,8(连续) 我想从左边离开 0,8,7,6,5,4,3
int twoD[][]= new int[3][3];
输出
0 1 2
3 4 5
6 7 8
我想马上离开
0,1,2,3,4,5,6,7,8(连续)
我想从左边离开
0,8,7,6,5,4,3,2,1(连续)
我想升迁
0,8,5,2,7,4,1,6,3(连续)
我想下楼
0,3,6,1,4,7,2,5,8,0(连续)
您应该拥有外部数组和内部数组的当前索引以及数组的长度
int innerIndex = 0;
int outerIndex = 0;
int innerMax = 3;
int outerMax = 3;
如果按下右键,则必须增加内部索引。如果内部索引达到innerMax,您将增加outerIndex
,并将innerIndex
设置为0
。(最好是私有方法)
减少内部索引(按下左键)
private void increaseInner(){
内部索引--;
如果(内部索引<0){
innerIndex=innerMax;
外部索引--;
如果(OUTIDEX<0)
outerIndex=outerMax;
}
}
按下向上按钮和向下按钮的两种方法的创建方式与这些方法类似。您的问题不清楚。通常,要遍历二维数组,可以使用嵌套for循环。
private void increaseInner() {
innerIndex++;
if (innerIndex == innerMax) {
innerIndex = 0;
outerIndex++;
if (outIndex == outerMax)
outerIndex = 0;
}
}
private void increaseInner() {
innerIndex--;
if (innerIndex < 0) {
innerIndex = innerMax;
outerIndex--;
if (outIndex < 0)
outerIndex = outerMax;
}
}