|
Порядок элементов в массиве | ☑ | ||
---|---|---|---|---|
0
Septera
19.08.19
✎
16:15
|
Обратил внимание в ДО на такой код:
// Сортировка виджетов по наименованию
Насколько я помню Массив на гарантирует сохранение порядка элементов заданного при создании/добавлении элементов. Очередной говнокод от 1С или я что-то путаю? |
|||
1
НадюшаЯ
19.08.19
✎
16:17
|
Подпишусь
|
|||
2
OldCondom
19.08.19
✎
16:18
|
что запрос вывел, то в массив и получил, какие к нему вопросы? Это ты с результатом запроса и его отсутствием гарантий скорее всего путаешь.
|
|||
3
Вафель
19.08.19
✎
16:18
|
массив не гарантирует порядка?
это что то новенькое |
|||
4
OldCondom
19.08.19
✎
16:18
|
ой
|
|||
5
mistеr
19.08.19
✎
16:18
|
(0) Что-что не гарантирует?
Ты что-то путаешь. |
|||
6
OldCondom
19.08.19
✎
16:18
|
не заметил УПОРЯДОЧИТЬ ПО. Но сути н е меняет.
|
|||
7
aleks_default
19.08.19
✎
16:19
|
(0)Чейто?
|
|||
8
mistеr
19.08.19
✎
16:19
|
(2) Скорее всего, он путает с ТаблицаЗначений.Сортировать()
|
|||
9
aleks_default
19.08.19
✎
16:20
|
Элементы массива же по индексу получают, как это не гарантирует?
|
|||
10
Septera
19.08.19
✎
16:20
|
(3) да сталкивался и не раз причем, когда добавляешь элементы в определенном порядке, а при обходе выбираются вообще в другом, я сейчас поищу ветка даже такая была...
|
|||
11
Dionis Sergeevich
19.08.19
✎
16:22
|
Массив гарантирует порядок, не гарантирует например HashMap
|
|||
12
OldCondom
19.08.19
✎
16:24
|
(10) ты хочешь сказать, что если я создам массив и сделаю .добавить("а"), добавить("б"), то есть вероятность дальше в коде массив[0] получить "б"?. Ты серьезно?
|
|||
13
novichok79
19.08.19
✎
16:25
|
может быть я чего-то путаю, но по-моему, если непустому массиву сделать ЗначениеВСтрокуВнутр, то в полученной строке, элементы идут в таком же порядке, в котором они туда помещались.
|
|||
14
Septera
19.08.19
✎
16:26
|
Походу со Структурой перепутал:
"К элементам Структуры обращаются только по имени Ключа. Тем не менее, цикл Для каждого из работает и для Структуры, но опираться на порядок элементов Структуры не следует." |
|||
15
dexter_86
19.08.19
✎
16:27
|
Запрос.Выполнить().Выгрузить() - это результат запроса в виде ТЗ. В запросе есть упорядочивание. То есть результат будет выгружен в ТЗ в определенном порядке. ВыгрузитьКолонку(Ссылка) - выгрузить колонку результата в том виде, который попал в результат при упорядочивании. То есть за порядок отвечает не массив, а сам запрос в данном случае.
|
|||
16
dezss
19.08.19
✎
16:30
|
(14) ага....и сразу на форум 1С поливать...
|
|||
17
Septera
19.08.19
✎
16:30
|
С 1С становишься мнительным и теряешь доверие к здравому смыслу:))
Но вот со Структурой все же видимо порядок не гарантируется, так что не умничайте! :D |
|||
18
OldCondom
19.08.19
✎
16:33
|
(17) какой порядок без индексов? О чем ты блин?
|
|||
19
Dionis Sergeevich
19.08.19
✎
16:34
|
(17) это не только в 1с - это везде в подобных коллекциях
|
|||
20
dezss
19.08.19
✎
16:34
|
(17) Структура не предполагает подобного.
Дело не в 1С) |
|||
21
Cyberhawk
19.08.19
✎
16:38
|
Вроде везде в коллекциях неизменность порядка гарантируется, если есть [] или метод "Получить", кроме соответствия
|
|||
22
dezss
19.08.19
✎
16:39
|
Но так-то структура тоже порядок сохраняет. Собственно по порядку добавления элементов.
|
|||
23
Cyberhawk
19.08.19
✎
16:40
|
(22) Конечно нет
|
|||
24
dezss
19.08.19
✎
16:49
|
(23) Ну порядок не гарантируется, но все-таки сохраняется.
|
|||
25
olegves
19.08.19
✎
16:55
|
(22) у структуры нет добавить, а есть только вставить - о каком порядке добавления ты?
|
|||
26
dezss
19.08.19
✎
16:58
|
(25) Блин...я не про методы. Ладно, пусть будет по порядку вставки, так понятней?)))
|
|||
27
Мимохожий Однако
19.08.19
✎
17:22
|
Делай массив строками со структурой "НомерПоПорядку,Виджеты".
После считывания массива преобразуй в ТЗ, отсортируй, используй |
|||
28
Cyberhawk
20.08.19
✎
08:24
|
(24) Не баклань
|
|||
29
fisher
20.08.19
✎
08:54
|
Не знаю ни одного языка, где в массивах не гарантируется порядок. Порядок - ключевое свойство массива.
|
|||
30
VladZ
20.08.19
✎
09:10
|
(0) Я не понял, в чем вопрос.
"Насколько я помню Массив на гарантирует сохранение порядка элементов заданного при создании/добавлении элементов." - да, не гарантирует. Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); - порядок в массиве будет таким, как в полученном запросе. Вопрос-то в чем? |
|||
31
fisher
20.08.19
✎
09:48
|
(28) Потестил - вроде как структура таки порядок добавления сохраняет... Видать в 1С специально об этом позаботились (в java, например, есть LinkedHashSet, сохраняющий порядок добавления элементов. В питоне тоже вроде есть какие-то хэшированные структуры с сохранением порядка добавления). Не знаю только, зачем. А вот соответствие - нет.
|
|||
32
fisher
20.08.19
✎
09:52
|
Гы. Почитал про реализацию LinkedHashSet - там тупо параллельно с HashMap используется LinkedList. Для доступа по ключу используется мапа, а для итерации - лист :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |