0

我的任务是计算某个数字在排序数组中出现的次数。我的代码:

public static void count_occurences(Integer[] v, Integer k) {
           int count = 0;
            int start = 0; 
            System.out.println();
            for(int i = 826; i < v.length; i++){
                System.out.println(v[i]);
                System.out.println(k);
                if(v[i] == (Integer)k){
                    count++;
                }
        }
            System.out.print(count);
        }

当数组与我正在使用的数组一样大时,它似乎不起作用,因为它正好穿过我正在寻找的整数“828”。当数据太大或其他情况时,if语句是否存在某种错误?我很困惑。

4

1 回答 1

0

整数是类,你必须使用 equals 方法,否则你正在比较它们是否是同一个对象。您想检查它们是否代表相同的事物

v[i].equals((Integer)k)

另外,你从 826 的 i 开始,你需要从 0 开始。

于 2013-11-11T01:54:21.497 回答