|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
||||||
Код из ArrayList12.07.2018, 21:09. Показов 1634. Ответов 17
Метки нет (Все метки)
доброго времени суток. Кто нить сможет обьеснить работу этого кода. я взял из ArrayList метод Add
0
|
||||||
| 12.07.2018, 21:09 | |
|
Ответы с готовыми решениями:
17
Изменить код с применением ArrayList и SortedList Поиск в ArrayList ничего не возвращает. Исправить код Ошибка при работе с ArrayList (Обнаружен недостижимый код) |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 12.07.2018, 21:35 | ||
|
ArrayList — обычная обертка над массивом, в методе сначала проверяется количество оставшегося в массиве свободного места — если оно закончилось, то создается новый массив большего размера. Этим занимается метод EnsureCapacity. Дальше в массив записывается новое значение, увеличивается значение верси и количество элементов. В конце возвращается индекс свежедобавленного элемента.
0
|
||
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
|||
| 12.07.2018, 21:45 [ТС] | |||
|
я такой метод сделал при помощи цикла for, создавал временный массив, туда копировал основной, дальше создавал новый массив на один элемент больше. и вот тут как раз и загвоздка, как тут создается новый
0
|
|||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 12.07.2018, 22:46 | ||
|
0
|
||
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
||||||||
| 12.07.2018, 22:55 [ТС] | ||||||||
Добавлено через 1 минуту
0
|
||||||||
|
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
|
|
| 12.07.2018, 23:30 | |
|
Гиоргий, зачем смотреть декомпилятором, если можно посмотреть на исходник с понятными именами констант.
1
|
|
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
|||||||
| 13.07.2018, 12:53 [ТС] | |||||||
0
|
|||||||
|
Администратор
|
|||||||||||
| 13.07.2018, 14:00 | |||||||||||
|
Гиоргий, так
1
|
|||||||||||
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
||
| 13.07.2018, 14:18 [ТС] | ||
|
0
|
||
|
Администратор
|
||||||
| 13.07.2018, 14:22 | ||||||
Сообщение было отмечено Гиоргий как решение
Решение
Гиоргий, в таком случае используем while, потому что без цикла так или иначе здесь не обойтись.
1
|
||||||
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
||
| 13.07.2018, 14:30 [ТС] | ||
|
0
|
||
|
Администратор
|
|
| 13.07.2018, 14:41 | |
|
Гиоргий, Add из ArrayList работает быстрее потому что он создает массив с запасом и создает новый масссив только когда этот массив заполнен до конца. Для этого у него и введены свойства Count (количество элементов) и Capacity (количество элементов которое может поместиться в коллекции без выделения новой памяти). Это видно в коде метода EnsureCapacity который ты уже приводил. В начале Capacity = 0, затем 4, далее удваивается. Сделай по аналогии и получишь похожую скорость.
0
|
|
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
||
| 13.07.2018, 14:47 [ТС] | ||
|
0
|
||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
| 13.07.2018, 14:49 | |
|
1
|
|
|
Администратор
|
|
| 13.07.2018, 14:50 | |
|
Гиоргий, зачем здесь двойная перезапись? Я же уже показал что достаточно один раз скопировать.
1
|
|
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
||||
| 13.07.2018, 16:22 [ТС] | ||||
|
Добавлено через 1 час 19 минут
0
|
||||
|
Alvin Seville
|
|||||||||||
| 14.07.2018, 09:41 | |||||||||||
|
Гиоргий, когда я писал список, то изначально его емкость равнялась 1, затем 2, 4, 8... Чем больше добавляешь в список тем реже происходит переаллокация и тем быстрее работает программа. Для примера:
Либо ты можешь увеличивать на константу размер массива, но тогда: выигрыш по памяти, проигрыш по скорости.
1
|
|||||||||||
|
50 / 4 / 0
Регистрация: 21.02.2018
Сообщений: 153
|
|
| 14.07.2018, 09:57 [ТС] | |
|
0
|
|
| 14.07.2018, 09:57 | |
|
Помогаю со студенческими работами здесь
18
В классе Use объявить ArrayList и добавить в каждый элемент ArrayList ID, Name, Text, Song ArrayList: необработанное исключение. Операции над множествами с использованием ArrayList Не проходит код с массивом ArrayList Экспорт данных из таблицы в ArrayList (проверить код) Зачем ресурс определенный в XAML как ArrayList доп-но приводится к типу ArrayList в коде с#? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
/ / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров)
. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|