|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Возможно ли, не имея ссылки на объект, получить этот объект из массива
Здравствуйте. Есть вектор:
var myObjects:Vector.<Object> = new <Object> [new Object4(), new Object2(), new Object8()]; Исходные данные: тип искомого объекта (класс Object2) и сам массив с этим объектом. Больше у нас ничего нет. Подскажите, пожалуйста, возможно ли программно найти этот объект в массиве по его классу? Добавлено через 1 минуту PS: Может лучше использовать Dictionary? Добавлено через 6 минут Во я затупил! Можно пройтись по массиву и у каждого элемента спросить: он is Object2, или нет. Но может есть более продвинутые решения?
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
[+4 07.04.12]
[+1 20.01.12] Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
|
for each (var object:Object in myObjects) { if (object is Object2) { break; /// поиск окончен } } блин не дочитал до конца =) |
|
|||||
anmelegov, спасибо, что откликнулся. Об этом и сам подумываю. Только вот не нравится мне такой вариант. Дело в том, что мне в разных частях проекта часто придется выдергивать то Object2, то SomeClass234 и др. И все время потрошить массив, как-то... Думал спрошу здесь, мож у кого более приятные идеи появятся.
Добавлено через 42 секунды PS: где-то читал, что for быстрее чем for each, вот и всегда использую первый
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
anmelegov, поиск окончен будет после цикла for each.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
[+4 07.04.12]
[+1 20.01.12] Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
|
for быстрее, for each в каждой итерации будет записывать object, а запись в память всегда тормозит
|
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Проверяли? Наверно на 100 млн. объектах быстрее?
|
|
|||||
[+4 07.04.12]
[+1 20.01.12] Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
|
не проверял... да скорее всего разница мало ощутима =)
|
|
|||||
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 14.03.2012 в 23:54. |
|
|||||
я бы посоветовал вам сделать Dictionary если уж так важно имеет отношение Class->object. Если вам нужен именно массив чтоб им ещё как-то пользоваться оставьте его, а параллельно ему сделайте Dictionary где ключом будет класс а значением объект.
Добавлено через 1 минуту Это в случае если ваши классы инстанцируются не один раз, а если один раз то можно вообще классического синглтона замутить со статическим getInstance() который один раз создаст объект и сохранит его в статическом поле, в потом его и будет возвращать.
__________________
:) |
|
|||||
Да - отношение именно Class->object. Не особо важно, массив это или еще что-то - главное список объектов, которые можно вытащить. А вот с синглтоном немного не понятно... У меня сейчас есть статический вектор с экземплярами. Он не меняется никогда...
__________________
Я мало чего умею, но зато хорошо умею учиться... |
Часовой пояс GMT +4, время: 20:58. |
|
« Предыдущая тема | Следующая тема » |
|
|