|
|
|
Supreme Being
      
участник
Last Login: 02.02.2008 19:48
Сообщ.: 480,
Visits: 5 178
|
|
| Меня всегда раздражала необходимость кастинга при извлечении обьекта из библиотечной коллекции. Обычно в коллекции хранят обьекты одного известного типа, но при извлечении приходится всякий раз этот кастинг делать. Модные нынче дженерики не в счет. Там внутри тот же кастинг делается. Придумано исключительно для удобства программирования, но не для повышения эффективности программы. Кастинг - отнюдь не самая тяжелая операция, но все же операция (по моим примитивным тестам время извлечения обьектов из коллекции возрастает примерно на 5% ). Возникает ли желание взять, скажем, ArrayList и на его основе сделать к примеру StringArrayList, заточенный под хранение стрингов? Чтобы исключить кастинг. Или это паранойя и маразм?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298,
Visits: 12 500
|
|
во-первых, про 5% на приведение типов при работе с коллекцией - это ты загнул, по-моему
во-вторых, generics применительно к collections должны работать как типизированные коллекции, нечто похожее на С++ templates, по крайней мере на уровене классов входящих в JDK, правда я не смотрел как это реализовано, но если правильно, то приведение типов в этом случае не требуется
а так, в общем, если для задачи достаточно набора возможностей предоставляемых массивом, то всегда стоит отдавать предпочтение массиву по сравнению с любого рода коллекцией, потому как: меньше памяти, быстрее создание самого массива, быстрее установка значений в массиве, быстрее извлечение значений из массива, нежели из любой коллекции
С уважением,
Владимир
|
|
|
|
|
Supreme Being
      
участник
Last Login: 02.02.2008 19:48
Сообщ.: 480,
Visits: 5 178
|
|
во-первых, про 5% на приведение типов при работе с коллекцией - это ты загнул, по-моему Я побаловался простеньким тестом и на истину особо не претендую. А что, на самом деле должно быть больше или меньше? В какую сторону загнул? :)
во-вторых, generics применительно к collections должны работать как типизированные коллекции, нечто похожее на С++ templates, по крайней мере на уровене классов входящих в JDK, правда я не смотрел как это реализовано, но если правильно, то приведение типов в этом случае не требуется Я тоже сам не смотрел, но читал на другом форуме мнение тех, кто смотрел (по их словам).
а так, в общем, если для задачи достаточно набора возможностей предоставляемых массивом, то всегда стоит отдавать предпочтение массиву по сравнению с любого рода коллекцией, потому как: меньше памяти, быстрее создание самого массива, быстрее установка значений в массиве, быстрее извлечение значений из массива, нежели из любой коллекции Я всеми четырьмя конечностями за массив, но часто нужна автоматическая расширяемость. Собственно, ArrayList и есть массив, в который добавлено несколько полезных методов. И без Hash.. коллекций тоже не обойтись.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298,
Visits: 12 500
|
|
по-моему должно быть меньше 5%
ты как тест проводил? извлекал String объекты из коллекции с приведением к String и сравнивал результаты с извлечением String объектов из коллекции в той же последовательности, но оставляя их как Object? какую коллекцию использовал?
С уважением,
Владимир
|
|
|
|
|
Supreme Being
      
участник
Last Login: 02.02.2008 19:48
Сообщ.: 480,
Visits: 5 178
|
|
| да, именно так. Коллекция - ArrayList.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077,
Visits: 21 402
|
|
ну в принципе можно попробовать Class.forName(String name,boolean initialize,ClassLoader loader)
Но скорей всего это вряд ли поможет отцу русской демократии:))
|
|
|
|
|
Supreme Being
      
участник
Last Login: 02.02.2008 19:48
Сообщ.: 480,
Visits: 5 178
|
|
| признаться, я ничего не понял
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077,
Visits: 21 402
|
|
| Чё то я фигню спорол:) похоже
|
|
| |