Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/39: Рейтинг темы: голосов - 39, средняя оценка - 4.92
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316

Удалени дубликатов из массива?! (еррейлист)

18.10.2013, 10:20. Показов 7762. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет! хочу загнать сгенерированные числа в еррейлист<стринг>
там множество дубликатов, хотелось бі оставить только уникальніе значения. Не нашел в документации как єто сделать (возможно там и нет такой функции)

Подскажите как оптимально віполнить удаление дубликатов?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2013, 10:20
Ответы с готовыми решениями:

Удаление дубликатов с массива
Добрый день! подскажите плиз как с массива типа List&lt;string&gt; удалить повторяющие строки. public List&lt;string&gt; lst = new...

Удаление дубликатов с массива
public void removeDups(){ int i=0; int dubl=a; for(i=1;i&lt;nElements;i++){ if (a!=dubl) dubl=a; else ...

Сортировка массива по возрастанию + поиск дубликатов
Добрый день:) Я новичек:) подскажите плиз, почему когда помещаю в массив случайные числа, они потом с каждым новым запуском программы...

17
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
18.10.2013, 10:31
warrax, http://stackoverflow.com/quest... -arraylist
1
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 11:09  [ТС]
Цитата Сообщение от Sakralbar Посмотреть сообщение
спасибо за ответ но мне оптимальній вариант нужен)
а тут слишком много телодвижений. Я и сам могу написать функцию и удалить повторы.

Нашел кое что проще - хешсет.
реализовать пробую так
Java
1
2
3
4
5
6
7
8
9
public class DelDublicates  {
    //создаем метод для удаления дубликатов с помощью хешсет
    public ArrayList<String> DelDubl(ArrayList<String> array){
        ArrayList<String> result = new ArrayList<String>(new HashSet<String>(array));
        Collections.sort(result);
        //System.out.println(result);
        return result;
    }
}
Взято из инета, остальо только понять что там вообще написано
0
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
18.10.2013, 11:18
warrax, я все понимаю, но по ссылке как раз и был вариант:
To answer the question "delete duplicates in java arraylist":
Just put all elements into a Set and you're done.
HashSet - реализация интерфейса Set.
А в том коде, что вы привели всё просто:
Берется массив с дубликатами, из него формируется HashSet (этим действием удаляются дубликаты), из этого нового HashSet формируется массив. Потом этот массив сортируется и возвращается из функции.
1
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 11:24  [ТС]
Цитата Сообщение от Sakralbar Посмотреть сообщение
warrax, я все понимаю, но по ссылке как раз и был вариант:
HashSet - реализация интерфейса Set.
А в том коде, что вы привели всё просто:
Берется массив с дубликатами, из него формируется HashSet (этим действием удаляются дубликаты), из этого нового HashSet формируется массив. Потом этот массив сортируется и возвращается из функции.
логику то я понял, просто еще не работал с ерейлистом, хешсетом...еще и сортировка...

теперь задумался как мне масив интеджер перевести в стринг и записать в ячейку ерейлиста. и так н-ое количество раз
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
18.10.2013, 13:09
Цитата Сообщение от warrax Посмотреть сообщение
теперь задумался как мне масив интеджер перевести в стринг и записать в ячейку ерейлиста. и так н-ое количество раз
а toString() чем не угодил? вызвать в цыкле , проконкатенировать и пихай куда хочешь. вопрос зачем ?
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 13:24  [ТС]
Цитата Сообщение от warloc69 Посмотреть сообщение
а toString() чем не угодил? вызвать в цыкле , проконкатенировать и пихай куда хочешь. вопрос зачем ?
1) вопрос затем, что не знал и намомент его написания еще не нашел ответа
2) уже сдела так
Java
1
2
3
4
5
6
7
// передаем в метод _ccNumber и переводи в стринг и записіваем в ерейлист
    public void writeTolist(int[] _ccNumber) {
        // переводит инт ерей в стринг
        CCtext = Arrays.toString(_ccNumber);
        // добавляем строку в листеррей
        list.add(CCtext);
    }
3) я интересуюсь в основном оптимальными решениями и сделать костыль с цыклом и каждый элемент перевести в стринг это последнее чем бы я занялся))))))

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

п.с. - но спасибо за ответ!
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
18.10.2013, 13:52
Ну если вас не смущают квадратные скобки в начале и конце " [ ] " такой строки, то да...
я полагал что вам нужно получить обычную строку чисел , без доп символов...

Добавлено через 5 минут

Реализация Arrays.toString :

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public static String toString(long[] a) {
        if (a == null)
            return "null";
    int iMax = a.length - 1;
    if (iMax == -1)
            return "[]";
 
        StringBuilder b = new StringBuilder();
        b.append('[');
        for (int i = 0; ; i++) {
            b.append(a[i]);
        if (i == iMax)
        return b.append(']').toString();
            b.append(", ");
        }
    }
1
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
18.10.2013, 14:54
Цитата Сообщение от warrax Посмотреть сообщение
я интересуюсь в основном оптимальными решениями и сделать костыль с цыклом и каждый элемент перевести в стринг это последнее чем бы я занялся))))))
Цитата Сообщение от warrax Посмотреть сообщение
просто еще не работал с ерейлистом, хешсетом...еще и сортировка...
У новичков так всегда - решения у меня пока нет, но я хочу сразу оптимальное. Легче реализовать что-то, что вертится на языке, а потом слушать критику и править код, нежели потратить тонну времени и сил на поиск оптимального пути и не иметь в итоге вообще никакого решения. Стремление к совершенству не всегда бывает полезным.

Добавлено через 6 минут
Цитата Сообщение от warrax Посмотреть сообщение
привет! хочу загнать сгенерированные числа в еррейлист<стринг>
там множество дубликатов, хотелось бі оставить только уникальніе значения. Не нашел в документации как єто сделать (возможно там и нет такой функции)
Подскажите как оптимально віполнить удаление дубликатов?
Что мешает вам сразу при генерации числа переводить его в String, а потом после условия ArrayList.contains() добавлять новое число в массив? Тогда и дубликатов не будет, и массив String будет.

Добавлено через 5 минут
Цитата Сообщение от warrax Посмотреть сообщение
Java
1
2
3
4
5
6
public void writeTolist(int[] _ccNumber) {
    // переводит инт ерей в стринг
    CCtext = Arrays.toString(_ccNumber);
    // добавляем строку в листеррей
    list.add(CCtext);
}
Вы стремитесь к идеальному коду, но лично у меня метод вызывает вопросы сплошные. Что такое ССtext? Что такое list? Для ответов я должен пролистать код вверх и найти, где эти переменные объявлены, и только потом продолжить читать код метода. И еще: чем писать такие комментарии, лучше не писать комментарии вообще. Такие комментарии только захламляют код: комментарии не должны дублировать то, что и так понятно из кода. Ну и имхо оптимально если и писать комментарии, то на английском языке (или хотя бы не писать "эррейлист" или в том же духе)
1
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 15:05  [ТС]
у меня полностью готовій и рабочий код но...но хочу сделать все по правильному, по єтому и столько вопросов
Комменты пишу для сабя и только для себя так как пока добавлю новый класс и что-то там напишу, забуду что вообще сделал до этого. Когда мозги привыкнут)) тогда будут комменты людские и по англ писать

Добавлено через 36 секунд
Цитата Сообщение от warloc69 Посмотреть сообщение
Ну если вас не смущают квадратные скобки в начале и конце " [ ] " такой строки, то да...
я полагал что вам нужно получить обычную строку чисел , без доп символов...

Добавлено через 5 минут

Реализация Arrays.toString :

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public static String toString(long[] a) {
        if (a == null)
            return "null";
    int iMax = a.length - 1;
    if (iMax == -1)
            return "[]";
 
        StringBuilder b = new StringBuilder();
        b.append('[');
        for (int i = 0; ; i++) {
            b.append(a[i]);
        if (i == iMax)
        return b.append(']').toString();
            b.append(", ");
        }
    }
хмм..про скобки не знал. Буду вырезать значит
0
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
18.10.2013, 15:10
warrax, блин, неужели вам такие комменты помогают что-то понять или вспомнить?
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
18.10.2013, 15:17
Цитата Сообщение от warrax Посмотреть сообщение
Буду вырезать значит
Нет слов....
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 16:17  [ТС]
Цитата Сообщение от Sakralbar Посмотреть сообщение
warrax, блин, неужели вам такие комменты помогают что-то понять или вспомнить?
угу

Добавлено через 38 минут
Цитата Сообщение от warloc69 Посмотреть сообщение
Нет слов....
ладно, может и не правильно делаю...
что на счет такого способа

Java
1
2
3
4
5
6
7
8
9
10
11
12
public void vuvod() {
        StringBuffer text = new StringBuffer();
 
        for (int i = 1; i < Integer.parseInt(NumOfCCin.getText()) + 1; i++) {
            operations();
            text.setLength(0);
            for (int j = 0; j < _ccNumber.length; j++) {
                text.append("" + _ccNumber[j]);
            }
            System.out.println(text.toString());
        }
    }
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
18.10.2013, 16:33
Пришли к тому что я писал в своём первом коментарии
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 17:14  [ТС]
Цитата Сообщение от warloc69 Посмотреть сообщение
Пришли к тому что я писал в своём первом коментарии
я не нашел методов toString() в массиве
и так же не нашел как в цыкле все записать в стринг. Но нашел буферстринг где можно дописывать в конец, что я и сделал. Может Вы так и сказали но мой маленький умишка этого не понял
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
18.10.2013, 17:17
Цитата Сообщение от warrax Посмотреть сообщение
я не нашел методов toString() в массиве
а тут что по вашему происходит ?
Цитата Сообщение от warrax Посмотреть сообщение
"" + _ccNumber[j]
Кто то не почитал о неявном вызове toString()
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
18.10.2013, 17:22  [ТС]
Цитата Сообщение от warloc69 Посмотреть сообщение
а тут что по вашему происходит ?


Кто то не почитал о неявном вызове toString()
говорю ж, мало еще знаю, всего 200 страниц книги прочитал и то в рабочее время)

обычно всегда делал так String.valueOf(i); но когда лень писать 14 лишних символов всегда конкатенирую

К стати в маил ру задавал вопрос по єтому поводу, как лучше и как правильно делать, конкатенировать или
вызывать String.valueOf(i);
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
18.10.2013, 17:34
Цитата Сообщение от warrax Посмотреть сообщение
String.valueOf(i)
Это оббертка над Integer.toString()

А конкатенация тоже toString вызывает
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2013, 17:34
Помогаю со студенческими работами здесь

Рандом без дубликатов и превращение массива
Ребят, всем привет. Сразу скажу, что я только начал изучать java.. И уже пытался найти самостоятельно инфу по своему вопросу, но не...

Поиск дубликатов в двух массивах с последующим удалением их из виртуального массива
На одном листе есть две таблицы разделенные несколькими строками - это и есть 2 массива. Нужно проверить дублирующиеся значения между ними,...

Куда деваются вирусы при удалени программы Dr.Web
Всеи привет! Ребзя подскажите мож кто знает, Часто пользуюсь Dr.Web Cureit и приходится так же часто удалять его. Куда же все таки...

при создании статьи присваивается ID 0 и благодаря этому не хочет работать создание, редактирование и удалени
Здравствуйте! У меня проблема, сделал БД подключил к сайту всё норм, но проблема такова, при создании статьи присваивается ID 0 и благодаря...

Поиск дубликатов
Добрый день. Подскажите как сделать выборку на поиск дубликатов записей в таблице не учитывая ID записи. Полей очень много и нужно работать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru