2013-11-11 4 views
0

Мое задание - подсчитать количество вхождений определенного числа в отсортированном массиве. Мой код: не кажется, работаетSimple Если оператор не работает

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, которые возникают, когда данные слишком велики или что-то еще? Я очень смущен.

+0

Бугом не трейлеры IF заявления, это ошибка, как вы использовать его –

+0

Сколько элементов в вашем массиве? Вы игнорируете первые 826 из них. Пожалуйста, покажите пример из вашей программы. – paddy

ответ

0

целые числа являются классами, вы должны использовать метод equals, иначе вы сравниваете, являются ли они одним и тем же объектом. Вы хотите, чтобы проверить, если они представляют собой то же самое

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

Кроме того, вы начинаете в I в 826, вам нужно начать с 0.

Смежные вопросы