|
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185
|
||||||||||||||||
Функция с хеш-таблицей, сохранение порядка значений07.05.2024, 23:05. Показов 1244. Ответов 20
Доброго времени суток,
собственно коллеги прошу подсказать какой метод необходимо использовать в таком случае. делаю функцию столкнулся с проблемой , что при использовании функции и передачи переменных порядок ключей не сохраняется в том виде в котором он передаётся. в результате видно что порядок control test002 отличается от control test003, Я если честно уже голову сломал...(( Критика., любые варианты, хитрости, и т.д. готов все обсудить. Заранее спасибо за помощь... control test002: kava-banga Google_Seach_Maps new-test-WEB new-test-xxx control test003: Google_Seach_Maps new-test-xxx new-test-WEB kava-banga Задача такова... 1 . если -grind $true - то мы с данные с хештаблицы webfilter_urlfilter должны а) пересоздать массив $namesInOrder= @($webfilter['names']['entries'].Keys) (почему именно так. потому-что мне в будущем понадобится обращение к ключам массива. ) б) пересоздать с учетом новых индексов хештаблицу $webfilter_temp ...(порядок важен.!) 2. если -grind $false - то сработает 2 условия, а) если переданные ключи [webfilter_urlfilter] - совпали с $namesInOrder # Если ключ существует, проверяем и добавляем новые значения, если они уникальны б) если переданные ключи [webfilter_urlfilter] уникальны - то мы добавляем имена ключей в массив $namesInOrder и соответственно обновляем хеш-таблицу
0
|
||||||||||||||||
| 07.05.2024, 23:05 | |
|
Ответы с готовыми решениями:
20
Хеш-таблица и хеш-функция. Проверка на ввод существующих данных Хеш функция и хеш таблица. Проверка на наличие уже существующего таб номера Сортировка массива хеш-таблицей |
|
505 / 158 / 49
Регистрация: 27.02.2016
Сообщений: 818
|
||||||
| 08.05.2024, 05:45 | ||||||
0
|
||||||
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
|
|||||||
| 08.05.2024, 11:04 | |||||||
|
Если важен порядок ключей, то надо и создавать упорядоченный словарь. и здесь тоже не забыть:
2
|
|||||||
|
|
||||||
| 08.05.2024, 13:13 | ||||||
|
magarjoba, Предпочитая одну структуру данных другой, ИМХО нужно иметь мотивы, и желательно веские.
Иметь хеш таблицу и обращаться к ее элементам по индексу мысль сомнительная
1
|
||||||
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
|
|||||||
| 08.05.2024, 14:41 | |||||||
0
|
|||||||
|
6673 / 2266 / 346
Регистрация: 10.12.2013
Сообщений: 7,832
|
|
| 08.05.2024, 15:20 | |
|
magarjoba,
ты согласен пройти процедуру на полиграфе на предмет существования 'проблемы XY' в твоём вопросе ? https://ru.wikipedia.org/wiki/... C%D0%B0_XY
0
|
|
|
6673 / 2266 / 346
Регистрация: 10.12.2013
Сообщений: 7,832
|
|
| 08.05.2024, 17:48 | |
|
а кто может помешать двум благородным донам из неупорядочного хэша сделать
упорядоченный, путём добавления к ключам цифирок из натурального ряда в качестве префикса при создании и последующей сортировкой по ключу при доступе ? 1A => 'aaaaaaaaaa' 2X => 'cccccccc' 3Я => 'zzzzzzzzzzzzz'
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
|
|||
| 08.05.2024, 18:04 | |||
![]()
0
|
|||
|
|
||
| 08.05.2024, 18:16 | ||
|
0
|
||
|
6673 / 2266 / 346
Регистрация: 10.12.2013
Сообщений: 7,832
|
||||||
| 08.05.2024, 18:47 | ||||||
|
а можно и так,
высокохудожественно:
0
|
||||||
|
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185
|
||||||||||||||||||||||||||
| 08.05.2024, 18:53 [ТС] | ||||||||||||||||||||||||||
|
коллеги , благодарю за щедрую помощь . долго не отвечал, так как перетестировал все варианты с 0.. и обнаружил. что в принципе как и говорил человек на выходе когда я перепроверил, оказалось этого остаточно . что не нужно ухитряться... // обьяснюсь во втором куске окончательного скрипта, Порядок был важен, так как в полной функции . у меня идет перебор параметров и подстановка id индефикации --динамическая..id+10 и вот в этом случае, я как раз и старался добиться что-бы переменная с данными прилетела на обработку в правильном порядке.! На данный момент Итоговая стартовая функция.. без доп функционала.. Кликните здесь для просмотра всего текста
Далее итоговый код который еще на стадии рихтовки, но рабочий. Кликните здесь для просмотра всего текста
Я бы с рабостью, использовал-бы другой подход , но не опытен в написании функций т.е. на данном этапе !1. если передать так webfilter_urlfilter -model "FGT 40C" -- то получим генерацию из стандартных значений хештаблицы внутри функции 2. если -grind $false --- то мы существующую хештаблицу просто обновляем (индексация сохраняется) 3. -grind $true -- то перетираем все к чертям и записываем те данные что передали.. ------------------- # Пример использования функции с разными параметрами
0
|
||||||||||||||||||||||||||
|
6673 / 2266 / 346
Регистрация: 10.12.2013
Сообщений: 7,832
|
||
| 08.05.2024, 19:19 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185
|
|||||||
| 08.05.2024, 19:33 [ТС] | |||||||
|
1. Недобавлена проверка на дубликацию значений, если пользователь передал в функцию например имя "test" = @("new value5", "new value8", "new value8", "new value5", "new value5") ... Такую дубликацию нужно пересекать..! --------------------- но все-же.. задумка была следущая Сделать функцию , для автоподстановки/генерации кода !.1. на основе стандартных данных внутри функции !.2. в случае если (опытный) пользователь захочет видо-изменить внутренний стандарт и передаст параметры. под параметрами имеется ввиду напр: 1 . имя вэбфильтра -- 2. значения для этого фэбфильтра описывать синтаксис не буду, но в коде он правильный. выглядит он так. Кликните здесь для просмотра всего текста
Скажу заранее, Я не хотел бы выносить массив данных за предел функции поэтому старался внутри неё сделать стандартизацию.! в данной функции есть такой нюанс. Неудобность. Допустим пользователь , захочет передать несколько имен для вэбфильтра новых и в каждом имени он будет перечислять 300+ записей! в этом случае, функция будет выглядит нагромажденной.
0
|
|||||||
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
|
||||
| 08.05.2024, 21:14 | ||||
0
|
||||
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
|
||
| 09.05.2024, 14:28 | ||
0
|
||
|
|
|
| 09.05.2024, 15:20 | |
|
YuS_2, Точно не тот, посмотрел реализацию OrderedDictionary доступ действительно имеет сложность O(1) и по ключу и по индексу, жертвуется тем, что поддерживается два набора данных, один в ArrayList второй в HashTable плюс затраты на синхронизацию данных в этих структурах.
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
|
|
| 09.05.2024, 16:02 | |
|
alhaos, да, конечно, накладные расходы поболее будут, но здесь даже не в памяти и не во временной сложности дело, ибо предполагаемый набор данных небольшой, ТС-у нужен упорядоченный словарь, не с автосортировкой как SortedDictionary, а просто упорядоченный - как записали, так и получили, и индексы, хоть они и присутствуют, не особо нужны...
0
|
|
| 09.05.2024, 16:02 | |
|
Помогаю со студенческими работами здесь
20
программа работы с хеш-таблицей Работа с готовой хеш-таблицей Хеш таблица с внешней таблицей переполнения
Хеш, хеш-функция, хеширование и HashMap Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|