Мне нужно найти и перечислить все повторяющиеся значения индекса в массиве.Java - перечисление индекса повторяющихся значений в массиве int
Пример: int [] array = {0, 7, 9, 1, 5, 8, 7, 4, 7, 3};
7 находится в трех разных местах по индексу 1, 6 и 8. Как я могу изменить свой существующий код, чтобы иметь outputResults.setText() показать местоположение дубликатов значений? outputResults.setText() - это JTextField, если это помогает.
String tmp1 = getNumbers.getText();
try {
int search = Integer.parseInt(tmp1);
for (p = 0; p < array.length; p++) {
if(array[p]==search) {
b = true;
index = p;
}
}
if(b==true)
outputResults.setText(search + " was in the following fields of the array " + index);
else
throw new NumberNotFoundException("Your number was not found.");
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(getContentPane(), "You can only search for integers.");
} catch (NumberNotFoundException ex) {
JOptionPane.showMessageDialog(getContentPane(), ex.getMessage());
}
В его нынешнем состоянии, то это будет только список в последний раз находился дубликат номер, который будет индекс 8 основан на моем примере. Список чисел в массиве вводится пользователем, и мне не разрешено сортировать значения. Мое первоначальное предположение заключалось в создании вложенного цикла и всякий раз, когда он находил дублированный номер, добавьте p (текущий индекс, который он ищет) в новый массив. Затем я бы перечислил полный массив в outputResults.setText(), но он дал несколько предупреждений и ошибок, когда я пытался.
Полный код можно найти здесь, если необходимо: http://pastebin.com/R7rfWAv0 И да, полная программа - это беспорядок, но она выполняет свою работу, и у меня была такая головная боль с ней. Также обратите внимание, что в полной программе профессор попросил нас выбросить исключение, если дублирующее значение было обнаружено как дополнительный кредит. Я сделал это, но я прокомментировал это, чтобы закончить первоначальное задание, поэтому, пожалуйста, не обращайте на него внимания.
Я считаю, что ответ достаточно очевиден, если подумать об этом немного. То есть, на мой взгляд, цель домашней работы. Возможно, вместо того, чтобы сохранять индекс, вы могли бы сделать что-то еще ... – Morfic
Если честно, я думал то же самое, но, глядя на задание в течение нескольких часов, вы, как правило, забываете основы. Я работаю над этим довольно долго, но я не могу заставить его работать правильно. Моей главной задачей было отобразить массив индексов в JTextField в одной строке. – user1462300