Получив массив целых чисел, верните число 9 в массиве - PullRequest
0 голосов
/ 24 сентября 2019

По сути, цель этой проблемы - подсчитать, сколько раз число 9 набирается в массиве, например, arrayCountNines ([1, 9, 9, 3, 9]) = 3

Я попытался сделать поток чисел, например, с помощью .collect, но это не сработало.Также пробовал HashMaps

    public class NewClass4 {
   public int arrayCountNines(int[] nums) {
      HashMap < Character, Integer > map = new HashMap<>();
      for (int i =0; i<nums.length; i++) {
          char[] charr = String.valueOf(nums[i]).toCharArray(); 
          for(int j = 0; j<charr.length; j++) {
              if(map.containsKey(charr[j])) {
                  map.put(charr[j], map.get(charr[j])+1); 
              }
              else {
                  map.put(charr[j], 1);
              }
          }
      }
      return 1; 

}


    }

] 1

Не возвращает количество раз 9 находится в массиве

Ответы [ 4 ]

2 голосов
/ 24 сентября 2019
public int arrayCountNines(int[] nums) {
   return (int) Arrays.stream(nums).filter(value -> value == 9).count();
}
1 голос
/ 24 сентября 2019

Попробуйте этот простой подход:

public int arrayCountNines(int[] nums) {
    int result = 0;
    for(int i = 0; i < nums.length; i++){
        if(nums[i] == 9){
            result++;
        }
    }
    return result;
}
0 голосов
/ 24 сентября 2019

Разве вы не можете просто перебрать массив, используя цикл for, а затем добавить к счетчику, когда элемент равен 9?

...
int nineCounter = 0;
for(int i=0; i<array.length ; i++){
  if(array[i] == 9){
    nineCounter++;
  }
}
return nineCounter;
0 голосов
/ 24 сентября 2019

Попробуйте это:

   public int arrayCountNines(int[] nums) {
      int count=0;
      for (int i =0; i<nums.length; i++) {
          int v = nums[i];
          if (v==9) {
             count++;
          }
      }
      return count; 
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...