#java
#ява #java
Вопрос:
Недавно я увлекся программированием на Java (возможно, это уже становится слишком сложным для меня), и я ежедневно выполняю некоторые упражнения для практики. Одна из задач, которую мне нужно выполнить, это выполнить поиск элемента (int), и если он находится в массиве, должен отображаться индекс (все индексы должны отображаться, если элементы дублируются в массиве).
Вот код, который у меня есть на данный момент!
import java.util.ArrayList;
import java.util.Scanner;
public class IndexOf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
while (true) {
int input = Integer.valueOf(scanner.nextLine());
if (input == -1) {
break;
}
list.add(input);
}
System.out.println("");
// implement here finding the indices of a number
System.out.println("Search for?");
int arraySize = list.size();
int numToSearch = Integer.valueOf(scanner.nextLine());
for(int i = 0; i <arraySize-1; i ){
int pos = list.indexOf(numToSearch);
if(list.indexOf(i)==pos){
System.out.print(numToSearch " is at Index: " pos);
}
}
}
}
До сих пор мне удавалось заставить его печатать индекс элемента, который я ищу, но он делает это только для первого найденного правильного индекса.
Извините за неуклюжий код, я еще не многому научился с точки зрения аккуратного кода!
Комментарии:
1. Вам не нужно использовать
indexOf
. Просто используйтеif (list.get(i).equals(numToSearch))
.2. @AndyTurner Огромное вам спасибо! У меня было предчувствие, что я слишком много думаю об этом, все еще пытаясь понять основы 👍
Ответ №1:
В последнем цикле вы проверяли равенство между индексом numToSearch
in list
и индексом 0...arraySize-2
in list
. Если я неправильно понимаю вопрос, правильным подходом должна быть проверка равенства каждого элемента массива и numToSearch
. Затем распечатайте строку с текущим индексом, в котором вы находитесь.
Это может быть представлено следующим образом:
for (int i = 0; i < arraySize; i ) {
if (list.get(i) == numToSearch) {
System.out.println(numToSearch " is at Index: " i);
}
}
Комментарии:
1. Это решило мою проблему, вы правильно прочитали вопрос. Мне трудно сформулировать свои вопросы, когда я новичок в этой теме, извините за это 🙂 — Большое вам спасибо! Многому научился у вас.