Вы присваиваете свой int из входных данных для вашего массива:
number[i] = input.nextInt();
Затем позже вы подсчитываете их через цикл:
for (i = 0; i < number.length; i++) {
temp = number [i];
count [temp]++;
}
Как видите, если число temp
равно 12
, вы увеличиваете значение count
при индексе 12
на единицу.
Таким образом, в основном, count[i] = number of occurrence of number i
Поэтому, когда вы печатаете массив count
,вы видите их в естественном порядке.
Если вы хотите распечатать свои предметы в порядке встречи, я предлагаю вам использовать Map
для хранения вхождения:
Map<Integer, Integer> count = new LinkedHashMap<>(); // LinkedHashMap remember the insert order
for (i = 0; i < number.length; i++) {
temp = number [i];
if (count.contains(temp)) {
count.put(temp, count.get(temp) + 1);
} else {
count.put(temp, 1);
}
}
И вы можетераспечатайте их по порядку:
for (Entry<Integer, Integer> entry : count.entrySet()) {
// entry.getKey is the number
// entry.getValue is the occurence
}