docker
|
|
1 | |
Какая реализация коллекций подойдет для больших объемов?12.09.2006, 17:21. Просмотров 1835. Ответов 6
Метки нет Все метки)
(
Добрый день!
В коллекциях планируется хранить длинные последовательности числовых ключей. Потом мерджить их, интерсептить с друг другом и т.д., т.к. активно работать с ними. При этом многие из этих последовательностей могут быть и довольно маленькими. Какой класс для этого лучше подойдет? Может ArrayList, т.к. в нем вообще не нужно заботиться capacity, и оно там не перевыделяется при превышении размера..? |
|
12.09.2006, 17:21 | |
Выделение больших объемов памяти в Java
Свой сервер для хранения больших объемов информации Связь SpinButton и Frame для отображения больших объемов информации |
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
12.09.2006, 19:43 | 2 |
1. ArrayList -- динамический массив. Другими словами, он расширяется, если есть необходимость. Можно не заботиться о начальном размере, когда создаешь объект ArrayList. Но, если примерно размер известен, то лучше создать сразу нужного размера. Ничего страшного если ошибешься немного =))
2. О чем речь? Просто о коллекции целых чисел? Порядок имеет значение? Сортировка имеет значение? Уникальность имеет значение? От от ветов на эти вопросы зависит ответ на вопрос "какая коллекция подойдет". Не стесняйся, спрашивай. Про коллекции все расскажем =)) Гарантировано.
0
|
docker
|
|
12.09.2006, 22:49 | 3 |
О коллекциях последовательностей целых чисел, которые только единожды заполняются, а потом merge-утся, интерсептятся, т.е. подвергаются такого рода операциям. В результате этих операций - получаются, создаются новые коллекции, но первоначальные сами по себе не меняются. Т.е. элементы в(из) них вообще не добавляются и не удаляются. |
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
12.09.2006, 23:41 | 4 |
Из 5 вопросов ты ответил только на 2.
Ок, пусть даны две коллекции, содержащие целые числа. Пусть в результате объединения появляется новая коллекция. Пусть элементы в каждой из первоначальных коолекций уникальны. Но, сещесвуют значения присутствующие в обоих коллекциях. Например, c1 = (1 2 3) c2 = (3 4 5) Сколько троек будет содержать результирующая коллекция? Ответь на ВСЕ вопросы. Поверь, я их не спроста задаю.
0
|
docker
|
|
13.09.2006, 00:01 | 5 |
Дублирующие элементы не нужны. Т.е. 1 тройка. Порядок значения не имеет. Сортировка не имеет значения. Уникальность - вот да, имеет значение. ![]() |
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
13.09.2006, 00:12 | 6 |
Хе-хе. Тогда забудь про ArrayList. Тебе нужен HashSet. Тем более, что с ним операции merge и intersect реализуются в одну-две строчки. И ооооооооооочень быстро =)
0
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
13.09.2006, 00:18 | 7 |
Правда, должен тебя серьезно огорчить. Все будет очень быстро работать жо тех пор, пока не придет Garbage Collector. Дело в том, что в Java нету эффективной коллекции, чтобы манипулировать примитивными типами. Мы выкрутились из этой ситуации, написав свой, скажем, HashSet, но хранящий целые 64-разрядные числа. Работает в 4 (!) раза быстее, чем HashSet.
Рекомендую начать с HashSet. А уже потом, по мере необходимости, написать свою HashSet для long.
0
|
13.09.2006, 00:18 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Какая видеокарта подойдет для телевизора? Какая видеокарта подойдет для моего пк Какая OC подойдет для asus 1001 ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |