在数组中搜索特定索引处的值... Pt。 2纠错

时间:2014-02-27 09:53:05

标签: java android arrays

所以两天前我找了一些帮助,得到了一些好东西...... Searching arrays for a value at specific indices

现在我已经尝试尽我所能了,并且我遇到了一个错误:“表达式的类型必须是数组类型,但它已解析为int”if(lLungArray[i]k] == 1)

int[] lLungArray = {1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1};
int lLung;
private void checkHealth() {
    // TODO Auto-generated method stub
    if(MainActivity.panel1 == 0){
        if(MainActivity.panel2 == 0){
            int[] secondArray = {0,1,8,9};
            int lLungCount = 0;
            for(int i=0;i<lLungArray.length;i++){
                for(int k:secondArray){
                    if(lLungArray[i][k] == 1) //Error here {
                        lLungCount++;
                    }
                }
            }
        }
}

我的项目已基本完成,但我无法弄清楚如何解决此错误。如果您阅读我的第一个问题,您会发现我是新手并且Google没有太多帮助。

3 个答案:

答案 0 :(得分:0)

lLungArrayint的数组,但是这里lLungArray[i][k]你试图提供2个索引,将它视为一个数组数组,这是完全错误的!

更新:根据您的评论,

  

我想知道lLungArray在位置0,1,8,9中是否有1以及1出现了多少个实例。使用上面的lLungCount应该最终得到4.如果(lLungArray [i] == k){会帮助我吗?

我想这会帮助你达到你想要的效果。

private void checkHealth() {
    int[] secondArray = { 0, 1, 8, 9 };
    int lLungCount = 0;
    for (int k : secondArray) {
            // If the lLungArray elements at the positions specified by the 
            // elements of secondArray is 1 then increment the lLungCount
        if (lLungArray[k] == 1) {
            lLungCount++;
        }
    }
}

答案 1 :(得分:0)

你宣布了一维数组:

int[] lLungArray = {1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1};

但你尝试像二维数组一样访问它

if(lLungArray[i][k] == 1)

那是不可能的

我想你想要这样的东西:

secondArray[k] == 1

答案 2 :(得分:0)

lLungArray[i][k]表示第i行和第k列(2维数组)。但你的阵列是一维的。