Android 二维arraylist元素替换为条件

Android 二维arraylist元素替换为条件,android,arraylist,Android,Arraylist,我有一个2D arraylist,名为AdjList,它包含arraylist,包含如下值。每两个值都是一个“对”,每三个值都是该对的“标志” [278, 106, 0, 397, 36, 0, 59, 208, 0, 366, 221, 0] [366, 221, 0, 397, 36, 0, 132, 390, 0, 278, 106, 0, 295, 0, 0] 我使用上面的代码在这些列表中搜索指定的值对。vertexnum是AdjList中“sub ArrayList”的数目 for

我有一个2D arraylist,名为AdjList,它包含arraylist,包含如下值。每两个值都是一个“对”,每三个值都是该对的“标志”

[278, 106, 0, 397, 36, 0, 59, 208, 0, 366, 221, 0]
[366, 221, 0, 397, 36, 0, 132, 390, 0, 278, 106, 0, 295, 0, 0]
我使用上面的代码在这些列表中搜索指定的值对。vertexnum是AdjList中“sub ArrayList”的数目

for (int l = 0; l < vertexnum; l++) {
    if (adjLists.get(l).get(0) == p.x && adjLists.get(l).get(1) == p.y) {
        for (int h = 0; h < adjLists.get(l).size(); h += 3) {
            for (int g = 0; g < vertexnum; g++) {
                if ((vertexSprite[g].getX() + vertexSprite[g].getWidth() / 2) == adjLists.get(l).get(h)
                    && (vertexSprite[g].getY() + vertexSprite[g].getHeight() / 2) == adjLists.get(l).get(h + 1)) {
                    vertexSprite[g].setTexture(img_d);

                    ArrayList sublist = new ArrayList();
                    sublist.add(0, adjLists.get(l).get(h));
                    sublist.add(1, adjLists.get(l).get(h + 1));

                    for (int lj = 0; lj < vertexnum; lj++) {
                        if (Collections.indexOfSubList(adjLists.get(lj), sublist) != -1) {
                            int found = Collections.indexOfSubList(adjLists.get(lj), sublist);
                            adjLists.get(lj).set(found + 2, 1);
                            score++;
                        }
                    }
                    scoreupdate();
                }
            }
        }
        break;
    }
}
for(int l=0;l
此代码用于搜索精确值,并在每次出现时替换其标志。它无法在列表中找到所有出现的值/对,它只替换了几次标志值。每次查找到匹配项后,score的值应加上1,但此代码的增量大于匹配项的数量。
例如,一个数组是这样的[pair1,pair1,flag1,pair2,pair2,flag2],如果pair1等于搜索到的值,则希望将flag1更改为1。

为什么不使用类似的方法:

for (i=0;i<'vertexnum';i++){
    for (j=0;j<'Elements in list'-3;j=j+3){
        if(array[i][j]=='Condition 1' && array[i][j+1]=='Condition 2')
            array[i][j+2]='New Flag'  
        if ... 'You can have many if clauses here'                                     
    }                              
} 
(i=0;i)的