Boolean from array — функция в java, ввод из командной строки

У меня есть проблема, которая считывает N числа из командной строки, и я хочу проверить, все ли эти числа одинаковы.

это мой код

class q2 {
    public static boolean check(int[] arr) { 
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 1; j < arr.length; j++) {
                if (arr[i]==arr[j]) return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {   
        int[] arr = new int[args.length];
        boolean result = check(arr);
        System.out.println(result);
    }
}

но в любом случае (но вообще без ввода) он возвращает false, и я не знаю, где ошибка.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
142
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы передаете значения из командной строки, вам нужно добавить эти значения в массив, который вы передадите в метод check:

public static void main(String[] args) {
    int[] arr = new int[args.length];
    for(int i = 0; i < arr.length; i++){
        arr[i] = Integer.parseInt(args[i]);
    }
    boolean result = check(arr);
    System.out.println(result);
}

Вы можете упростить свой метод check, например. вам не нужна двойная петля. Просто сравните текущий элемент со следующим, как показано ниже:

public static boolean check(int[] arr) {
    for (int i =0;i<arr.length-1;i++)
        if (arr[i] != arr[i + 1])
           return true;
   return false;
}

Другие вопросы по теме