2014-02-13 5 views
1

Im из Perl, где хэши и массивы удобны в использовании, так как они очень динамичны и делают много вещей в фоновом режиме, которые обычно раздражают программиста.ArrayLists и HashMaps рекомендуется использовать в Java?

Как и я, я начинаю использовать hashmaps и ArrayLists, так как они делают работу по программированию более легкой и быстрой. Но как это происходит? Рекомендуется ли использовать эти типы данных для больших проектов или я должен ограничиться только ядром Java со строками и массивами?

Спасибо за все ответы :-)))

+0

http://stackoverflow.com/q/629804/1065197 –

+2

Лучше использовать классы с типами данных не по соображениям производительности, а для ясности и ремонтопригодности. Объекты BTW намного быстрее и используют гораздо меньше памяти. –

+0

Да и нет. Я создал PerlArray и PerlHash для того, чтобы делать то, что мне нравится делать с массивами и хэшами Perl. Если я собираюсь использовать Java-массивы, я в значительной степени управляю ими в 'ArrayList'. Но поиск хэшей не будет таким быстрым, как в основном, это * struct *, где смещение может быть сохранено непосредственно в байт-коде. Я не всегда программирую на Java, но когда я это делаю, я использую объекты для данных и контейнеров для отношений и алгоритмов. – Axeman

ответ

1

Если у вас есть неизменные данные, которые вы будете писать один раз (или несколько раз) и прочитанные много раз, массив может быть (очень немного) быстрее, чем ArrayList. Массив может также потреблять (незначительно) меньше памяти, чем ArrayList. Тем не менее, ArrayList в частности относится к классу, который используется очень часто, поэтому полезно иметь возможность работать с ним (и в более общем плане с другими классами, реализующими интерфейс List), а под ним элементы хранятся в массиве, поэтому доступ должен не действительно быть медленнее.

HashMap s реализует карту на основе хэширования. Они, как правило, представляют собой структуру данных и их реализацию, поэтому они действительно рекомендуются. Как класс, реализующий интерфейс Map, они также являются полезным способом сопоставления одного объекта с другим, что является часто встречающейся проблемой.

Большинство классов Collections (и интерфейсы) хорошо разработаны и просты в использовании.

1

HashMap, ArrayList, и т.д. являются частью основных Java библиотек и рекомендуются для использования.

Вы также должны изучить другой номер Collection, так как в зависимости от того, что вы делаете, некоторые из других вариантов могут быть еще лучше для вас.

Смежные вопросы