| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Сортировка в ArrayList |
| Автор: jonajo 1.4.2010, 00:05 | ||
Задали задачу ,переделать алгоритм сортирования массива в сортирование в ArrayList.
проблема,что я что-то неправильно пишу в метод set. Ошибка cannot find symbol - method set(java.lang.Integer,java.lang.Integer). Я поняла,что вроде как неправильные параметры. Помогите правильно написать,пожалуйста |
| Автор: Zoiberg 1.4.2010, 00:16 |
| Как я понимаю, сортировать надо ту коллекцию которая в параметрах метода bubblesort передается. А вы вызываете метод set не для нее. Если это да, то будьте внимательны в дальнейшем. |
| Автор: jonajo 1.4.2010, 00:23 | ||||
Да вроде бы для нее... |
| Автор: aleksandy 1.4.2010, 05:01 | ||||||
Pусским же по-белому написано
Что неудивительно в свете
Коллекции не умеют хранить примитивы. |
| Автор: batigoal 1.4.2010, 08:26 |
? Давным-давно уже умеют. Добавлено через 1 минуту и 5 секунд Что за метод set, вообще? Приведите код класса целиком. |
| Автор: Kangaroo 1.4.2010, 10:47 | ||
Ха, куда они денутся. Запихнем все
Параметры может и правильные, а метода такого нет в твоем классе. Правильно MaxPayneC - вызывать нужно метод сет Листа. |
| Автор: jonajo 1.4.2010, 12:17 | ||
| Мне вот уже подсказали.Вот в этом случае все работает и сортирует без проблем. Только вот почему у меня не работало и в set выкидывало ошибку ?
|
| Автор: batigoal 1.4.2010, 13:19 | ||
Разумеется. потому что у тебя было не с.set(x, x) а set(x, x). |
| Автор: aleksandy 2.4.2010, 12:21 | ||||||
| autoboxing - зло. http://www.skipy.ru/technics/objCompPr.html#unboxing
А вот и нет...
|
| Автор: batigoal 3.4.2010, 15:30 |
| aleksandy, Вы на практике сталкивались с программными ошибками, связанными с использованием автобоксинга в коллекциях? Я - нет. |
| Автор: aleksandy 5.4.2010, 05:12 | ||||||
| Нет, не сталкивался. Но при чем здесь ошибки? Во-первых, я имел ввиду, что при
в коллекции все равно будет храниться не примитивный int, а его обертка Integer. Во-вторых, тормоза достаточно весомые.
Вывод
|
| Автор: batigoal 5.4.2010, 07:50 | ||
Да, но почему это - зло? Тут соглашусь, хотя, опять же, экономить перформанс на заменах коллекций массивами - сомнительная практика в большинстве случаев. |
| Автор: jk1 5.4.2010, 08:45 | ||||||
На мой взгляд не все так однозначно. Во-первых, в отличие от ваших 3х порядков на моей машине дает разницу на порядок, а во-вторых вот такой код
в последней итерации дает
Вы безусловно правы в том отношении, что аллокация в стеке (как происходит с примитивами) дешевле аллокации объектов в куче, но оптимизационная выгода получается довольно сомнительной. Не перекроет ли этот выигрыш постоянная необходимость в boxing/unboxing? Ответ зависит от конкретной задачи. Микробенчмарки, такие как ваш тест, редко действительно меряют что-то осмысленное, вот неплохая статья на этот счет http://www.ibm.com/developerworks/ru/library/j-jtp12214/index.html |
| Автор: aleksandy 6.4.2010, 07:55 | ||||||
Потому что если в коллекции хранится объект, то и надо работать с объектом. Так, имхо, правильно.
А я этого и не предлагал... jk1, Вот такой тест устраивает
|