[英]Trouble assigning values to an array of objects in Java, using a for loop and object methods
[英]Trouble assigning a value to an array in java
我不知道,但由於某種原因陣列拒絕改變,我不知道為什么。 見下面的進一步評論
public static void contour (int[ ][ ][]image, int rows, int cols, int maxIntensity, int[ ][ ][]newImage) throws Exception
{
PrintWriter contour = new PrintWriter("contour.ppm");
int r = 0;
int c = 0;
int a = 0;
int sumk = 0;
while (r < rows && c < cols)
{
while (a < 3)
{
image[0][r][a] = newImage[0][r][a];
image[cols-1][r][a] = newImage[cols-1][r][a];
image[c][0][a] = newImage[c][0][a];
image[c][rows-1][a] = newImage[c][rows-1][a];
a++;
}
r++;
c++;
}
System.out.println (image[32][0][2]);
System.out.println (newImage[32][0][2]);
}
這段代碼有點脫離了上下文,但你應該能夠看到我想在兩個數組中使用哪些值相同。 打印語句用於測試目的,由於某種原因,我得到兩個不同的值。 這些數組都賦值給它們,但圖像數組不會改變(即使我在這種方法中創建一個新數組,同樣的問題仍然存在)。
您可以看到我在main方法中定義了這些數組,它們如下所示:
int image [][][] = readimage (fname, descriptor);
int newImage [][][] = new int [rows][cols][3];
因此,圖像數組是來自不同方法的返回數組。
我忽略了一些非常明顯或者是什么? 我一直在努力解決這個問題,所以所有提示,技巧和解釋都非常感謝!!
假設你遍歷行和列的方式,你打算......你永遠不會重置a
變量為0
,那么你的代碼只能使用一次。
int r = 0;
int c = 0;
int a = 0;
int sumk = 0;
while (r < rows && c < cols)
{
while (a < 3)
{
image[0][r][a] = newImage[0][r][a];
image[cols-1][r][a] = newImage[cols-1][r][a];
image[c][0][a] = newImage[c][0][a];
image[c][rows-1][a] = newImage[c][rows-1][a];
a++;
}
r++;
c++;
a=0; //<----ADD THIS
}
如果rows參數或cols參數小於33,則測試中打印的位置將不會從newimage復制到image。 while (r < rows && c < cols)
測試導致循環在r或c中的第一個達到其最大值時終止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.