Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2017, 17:15   #1
Stas8010
 
Регистрация: 08.02.2017
Сообщений: 8
По умолчанию Удаление дубликатов из масива(Объясните код плиз)

0 1 2 3 4 5 6 7
Допусти ест массив (1,1,2,3,2,4,4,4)
Код:
String[] removeDuplicates(String[] arr) {
        int counter = 0;   //для чего counter   
        for (int i = 0; i < arr.length; i++) {//цикл для сортировки длинны массива
            for (int j = i + 1; j < arr.length; j++) {     //тут понятно
                if (arr[i] != null && arr[i].equals(arr[j])) {  //если 1-й эл неравен пустому знач И 1-й элемент эквивалентен, т.е. равен 2 эл, (1=1)
                    arr[j] = null; ////то 2-й эл =пустому знач.
                    counter++;//след эл. 1
                }
            }
        }
здесь не понимаю что происходит(т.е. верхнее условие, цикл на совпадение, а нижний наоборот)
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] == null && arr[j + 1] != null) {
                    arr[j] = arr[j + 1];
                    arr[j + 1] = null;
                }
            }
        }
        return Arrays.copyOf(arr, arr.length - counter);
    }


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 08.02.2017 в 21:52.
Stas8010 вне форума Ответить с цитированием
Старый 08.02.2017, 17:32   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я тоже не понял... Если там реализовано "все нули вытолкнуть в конец массива", то я бы так реализовал:
Код:
// (1,1,2,3,2,4,4,4) 
....................
....................
....................
// (1,0,2,3,0,4,0,0) 

int k=1;
for (int i = 1; i < arr.length; i++) {
if (arr[i] != null){
arr[k]=arr[i];
k++;
}
}
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление дубликатов в строке riabov5 Microsoft Office Excel 5 24.05.2015 23:17
Удаление дубликатов SolovejK Общие вопросы Delphi 7 13.03.2015 23:31
Объясните код плиз! bicks Общие вопросы C/C++ 0 08.12.2013 18:35
Удаление дубликатов Wind-up Bird Microsoft Office Excel 9 02.02.2012 12:49
Удаление дубликатов Deltist Microsoft Office Excel 11 14.01.2011 16:01