powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно называть элементы коллекции чтобы не было коллизий
6 сообщений из 6, страница 1 из 1
Как правильно называть элементы коллекции чтобы не было коллизий
    #38784075
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть коллекция объектов. Одна функция постоянно добавляет в нее объекты разных типов:

Код: sql
1.
2.
3.
4.
Object_A
Object_B
Object_C
...



Ключ элемента коллекции "Тип объекта" + "Количество элементов в коллекции", допустим в пустую коллекцию добавлено 4 объекта:

Object_A, Object_С, Object_B, Object_A

Они будут иметь ключи

Код: sql
1.
2.
3.
4.
Object_A_0
Object_C_1
Object_B_2
Object_A_3



Вторая функция, постоянно удаляет объекты из коллекции, когда закончилось "их время жизни". Она может удалить любой объект.
Например она удаляет объект с ключом Object_A_0, а функция добавления сразу после этого добавляет новый объект типа Object_A,
у которого получается ключ Object_A_3, а такой элемент уже есть, получается исключение...

Возник вопрос, как именовать ключи коллекции, чтобы в них был отражен тип объекта и они легко бы читались человеком.
Т.е. название вроде "Тип Объекта" + GUID не устроит из-за хуман фактора. И еще желательно что бы не было долгих проверок при добавлении элементов.
...
Рейтинг: 0 / 0
Как правильно называть элементы коллекции чтобы не было коллизий
    #38784084
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Счетчик используй. Тогда новый будет Object_A_4
...
Рейтинг: 0 / 0
Как правильно называть элементы коллекции чтобы не было коллизий
    #38784091
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСчетчик используй. Тогда новый будет Object_A_4

тогда будут пропуски в названиях объектов, Object_A_0 не будет в списке
...
Рейтинг: 0 / 0
Как правильно называть элементы коллекции чтобы не было коллизий
    #38784105
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем критичны пропуски?

Можно запоминать удаленные, затем возвращать номера.
Ка-то так:
Перед удалением запоминаешь номер удаляемого, например 0, удаляешь, если номер <= количеству элементов, запоминаешь в список свободных номеров.
При добавлении если есть в списке свободных номеров - берешь номер оттуда и удаляешь этот номер из списка. Если список пуст - берешь номером количество элементов.

Только тут ты рискуешь на следующие грабли наступить: например был Object_A_0, где была запомнена ссылка, ты его удалил, создал новый Object_A_0 и затем будет обращение по запомненной ссылке, при этом к совсем другому объекту, т.е. ничего не сглючит, просто отработает криво.
...
Рейтинг: 0 / 0
Как правильно называть элементы коллекции чтобы не было коллизий
    #38784361
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltВторая функция, постоянно удаляет объекты из коллекции, когда закончилось "их время жизни".Если при этом она НЕ ориентируется на имя объекта - то довесок к ключу можно хоть рандомом генерить. А поскольку тебе нужна (хрен понятно зачем) некая иллюзия непрерывности, сделай коллекцию связным списком.
...
Рейтинг: 0 / 0
Как правильно называть элементы коллекции чтобы не было коллизий
    #38784497
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltВозник вопрос, как
А не возникло ли у вас вопроса "Зачем я вообще занимаюсь подобной фигнёй"? Основное впечатление - убрать нафиг это ненужное имя и заняться чем-нибудь полезным.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно называть элементы коллекции чтобы не было коллизий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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