2015-08-20 3 views
-1

Я должен создать mainmethod, который вычисляет, сколько раз число произошло в строке. Пользователь должен ввести цифры. Я предполагаю, что мне нужно пройти через массив, хотя я не уверен, как это сделать.Сколько раз число происходило в строке (Java)

Userinput для массива, проведите цикл и проверьте, является ли это число предыдущим.

Пример: 1 3 4 5 6 6 6 9 - Выход: Номер 6 СВЕРШИВШИМСЯ 3 раза подряд

Это код, я прямо сейчас (SRY пропустил, чтобы вставить его):

public static void main(String[] args) 
{ 
    Scanner inp = new Scanner(System.in); 
    int counter = 0; 
    int[] x = new int[inp.nextInt()]; 
    for (int i = 0; i < x.length; i++) 
    { 
     if(i == x[i]) 
     { 
      counter++; 
     } 
     else 
     { 
      continue; 
     } 
    } 
    System.out.print(counter); 
} 

Любые идеи?

+2

Мы не будем писать код для вас. Если вы попытаетесь и у вас возникнут проблемы, если вы попытаетесь это сделать и хотите, чтобы помощь стала более эффективной после ее работы, вы можете опубликовать код на codereview.stackexchange.com – James

+0

где ваш код? – Andrew

+1

Каким должен быть выход для ввода вашего примера? – Michelle

ответ

0

HashMap<Integer, Long> Используйте для отслеживания количества вхождений для каждого номера:

Map<Integer, Long> numberOccurences = new HashMap<>(); 
for(int n : numbers) { 
    Long occurences = numberOccurences.get(n); 
    if(occurrences == null) { // first time the number n is seen 
     numberOccurences.put(n, 1L); 
    } else { 
     numberOccurences.put(n, occurences + 1); 
    } 
}