Сортировка массива с нулевыми значениями - программирование
Подтвердить что ты не робот

Сортировка массива с нулевыми значениями

У меня есть программа, которая позволяет пользователю удалять элемент из массива, и я пытаюсь сортировать их в алфавитном порядке с помощью compareTo(); через цикл for. Однако нулевые значения дают мне проблемы. Например, массив с нулевыми значениями:

String[] myArray = {"Apple", "Banana", null, "Durian", null, null, "Grapes"};

Когда Java сравнивает их и читает нулевое значение, это дает мне исключение NullPointerException.

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

{"Apple", "Banana", "Durian", "Grapes", null, null, null}

Я знаю, что использование Vectors может решить проблему, но мне просто интересно, есть ли способ, которым я могу просто это сделать, не меняя свой массив на векторы.

4b9b3361

Ответ 1

попробуйте это

    Arrays.sort(myArray, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            if (o1 == null && o2 == null) {
                return 0;
            }
            if (o1 == null) {
                return 1;
            }
            if (o2 == null) {
                return -1;
            }
            return o1.compareTo(o2);
        }});

он выдает требуемый порядок

Ответ 2

напишите свой собственный Comparator, который принимает нулевые значения, и передайте этот компаратор методу Arrays.sort()