Я работаю над статическим булевым методом, который проверяет, совпадают ли два соседних объекта, если они одинаковы, возвращает true, else возвращает false.Подсчет массива объектов с помощью статического логического метода JAVA
Вот мой код:
public static boolean neighbor(Object[] arr) {
int count = 0;
boolean result = true;
for(int i = 0; i < arr.length; i++)
{
if (arr[i].equals(arr[i + 1]))
{
count++;
}
}
System.out.println(count);
return result && (count > 0);
}
Однако, когда я проверить его с помощью командной строки, она не работает. Вот Контролирующие коды:
public static void main(String[] args) {
if (neighbor(args))
System.out.println("Neighbor s in arguments");
else
System.out.println("No neighbors in arguments!");
}
Пожалуйста, скажите мне, где это идет не так.
Можете ли вы добавить команду, которую вы используете для запуска этого? – Totodile
Здесь вы столкнетесь с ArrayIndexOutOfBoundsException, поскольку цикл for продолжается до последнего индекса, но затем вы проверяете arr [i + 1] в последнем цикле, поэтому граница массива будет превышена. Изменение для цикла должно быть 'i
Определить «не работает». NB Вам не нужна переменная 'result'. Вам действительно не нужен «count» переменный eitheer: вы можете просто «вернуть true», если будет найдено равенство; это будет быстрее. – EJP