我需要使用一个方法编写一个方法,ArrayList但我无法弄清楚如何做到这一点.
我只是使用一个数组就能做到这一点,我想知道是否有一种简单的方法来改变它,以便它确实实现了ArrayList.
这是我目前的代码:
//public ArrayList<Integer> getPixelsInWindow(int wSize, int x, int y) {
//ArrayList<Integer> values = new ArrayList<Integer>();
public int[] getPixelsInWindow(int wSize, int x, int y) {
int [] values;
int xMin = 0;
int xMax = 0;
int yMin = 0;
int yMax = 0;
xMin = x - (wSize / 2);
if (xMin < 0)
xMin = 0;
yMin = y - (wSize / 2);
if (yMin < 0)
yMin = 0;
xMax = x + (wSize / 2);
if (xMax >= rowN)
xMax = rowN - 1;
yMax = y + (wSize / 2);
if (yMax >= columnN)
yMax = columnN - 1;
int differenceX = xMax-xMin;
int differenceY = yMax-yMin;
values = new int[(differenceX + 1) * (differenceY + 1)];
int j = 0;
for(int i = xMin;i < xMax + 1;i++){
for(int k = yMin;k < yMax + 1;k++){
values[j] = img[i][k];
if(j == 0){
}
j++;
}
}
return values;
}
Run Code Online (Sandbox Code Playgroud)
这很快就完成了,没有经过测试......但是我知道这个想法是存在的:
...
List<Integer> values = new ArrayList<Integer>();
int j = 0;
for(int i = xMin;i < xMax + 1;i++){
for(int k = yMin;k < yMax + 1;k++){
values.add(new Integer(img[i][k]));
...
}
}
Run Code Online (Sandbox Code Playgroud)