我正在嘗試遍歷下面的僞代碼設置,並且我似乎只能使用for循環和case區分。有沒有簡單的方法來通過這些?Java - 遍歷不同數組長度的3個變量
編輯:爲了更清楚起見,我給出了兩個二維雙座標數組,給出了PunkteX [i] [m]和PunkteY [i] [m]。這兩個數組的長度將始終相同,但整數i和m是可變的。我想通過它們循環,以便將它們組合成類型爲Point2D [p]的新2維數組。 Point2D數組的長度將由i和m決定。
int i = punkteX.length; // same as punkteY.length;
int m = punkteX[0].length; // same as punkteY[0].length;
Point2D[] array = new Point2D[i*m];
array[0] = (punkteX[0][m], punkteY[0][m]);
array[1] = (punkteX[1][m], punkteY[1][m]);
array[2] = (punkteX[2][m], punkteY[2][m]);
.
.
array[i-1] = (punkteX[i-1][m], punkteY[i-1][m]);
array[i] = (punkteX[i][m], punkteY[i][m]);
array[i+1] = (punkteX[0][m-1], punkteY[0][m-1]);
array[i+2] = (punkteX[1][m-1], punkteY[1][m-1]);
array[i+3] = (punkteX[2][m-1], punkteY[2][m-1]);
.
.
array[p-1] = (punkteX[i-1][0], punkteY[i-1][0]);
array[p] = (punkteX[i][0], punkteY[i][0]);
我的企圖,爲了完整起見,這似乎只對我的工作= 3如下:
for (int p = 0; p < array.length; ++p) {
for (int m = 0; m < mtimes; ++m) { // mtimes = column length of PointX and PointY Arrays
Point2D[] interimarray = new Point2D[n]; // Global var n = i
for (int i = 0; i < interimarray.length; ++i) {
p = (p+i);
if (i == (interimarray.length-1)) { p -= 1; }
if (p < (array.length)) {
array[p] = new Point2D(xArray[i][(mtimes-m-1)], yArray[i][(mtimes-m-1)]);}
if ((p!= 0) && (i==(n-1))) { p += 1; }}}}
你會更好地解釋你試圖在這個僞代碼中實現什麼 - 這是不明顯的你想要做什麼。 – 2014-10-07 16:10:34
是的,這很混亂。我不知道你要在這裏做什麼。你有一個數據結構,你正試圖通過它嗎?或者你是否試圖創建一個數據結構並瀏覽它? – sage88 2014-10-07 16:10:58
另外還應該補充說,由於事實不清楚,它有可能被關閉。 – 2014-10-07 16:12:33