powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / повторяющиеся значения
8 сообщений из 8, страница 1 из 1
повторяющиеся значения
    #32683567
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем
есть массив в ктром часть значений повторяется
как можно простым способом вытащить все значения без повторений? есть ли стандартная функция на это или придется писать циклы и сравнивать в них значения между собой?
Спасибо
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683612
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандартной функции нет.
проще отсортировать массив, и потом пробежаться по нему выдёргивая в новый массив уникальные записи
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683633
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно в цикле кидать в dictionary и проверять exists
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683670
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве идеи - добавлять элементы массива в коллекцию, ключем которой являются сами элеметы массива.
Т.е. :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Command1_Click()
Dim arr( 1  To  5 ) As Variant
On Error GoTo err_proc
    arr( 1 ) = "a"
    arr( 2 ) = "b"
    arr( 3 ) = "a"
    arr( 4 ) = "b"
Dim coll As Collection
Dim intI As Integer
Set coll = New Collection
    For intI = LBound(arr) To UBound(arr)
On Error Resume Next
        coll.Add arr(intI), arr(intI)
On Error GoTo err_proc
    Next
Exit Sub
err_proc:
    MsgBox "Error"
End Sub

После выполнения в коллекции будут только уникальные значения. Этот способ может оказаться быстрее предложенного marvan.
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683714
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем
пошел пробовать
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683812
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KudinovЭтот способ может оказаться быстрее предложенного marvan.
проверил, действительно быстрее!
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683928
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
авторЭтот способ может оказаться быстрее предложенного marvan.

проверил, действительно быстрее!



Да-а, если массив Case-Sensitive? Облом с Вашим методом, только

marvan
отсортировать массив, и потом пробежаться по нему выдёргивая в новый массив уникальные записи


:-)

Я на етом ужо спотыкалси..

А потом, marvan, на каких объемах Вы это проверяли? Начните со 100 000+ элементов...

У меня коллекция на 300 000 заполняется (и особождается, что весьма немаловажно :-)) ГОРАЗДО медленне чем аналогичной размерности массив...
...
Рейтинг: 0 / 0
повторяющиеся значения
    #32683992
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДуракНачните со 100 000+ элементов
поздно пить боржоми, когда почки отвалились - не сохранил я тестовый проект, а новый - в лом.
Я закончил на 10 000 элементах и преимущество коллекции было существенным
для сортировки использовал NdxInsertSort и массив String*1
Весьма вероятно, что если исполизовать для работы более совершенный QuickSort или использовать вставку в троичное дерево поиска (TST) - при больших объёмах можно будет выиграть.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / повторяющиеся значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]