Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Застрял, на программе, сортировка ArrayList'а 
:(
    Опции темы
Слава
Дата 3.11.2005, 22:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет. Не поможете с проблемой.

Как можно добавить объекты в ArrayList по названию(String). в алфавитном порядке.

Заранее спасибо


  Вверх
batigoal
Дата 3.11.2005, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Обязательно в ArrayList? Тогда, наверное, придется вручную сортировать.
Но существуют классы TreeMap и TreeSet, которые упорядочивают добавляемые в них значения. А потом можно из них методом values() получить Collection.

Это сообщение отредактировал(а) Lamer George - 3.11.2005, 23:26


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Stampede
Дата 3.11.2005, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 24
Всего: 144



Цитата
Как можно добавить объекты в ArrayList по названию(String). в алфавитном порядке.


Если по условию задачи такое подходит, то можно создать список в том порядке, в каком уж получится, а потом в одну строчку упорядочить по алфавиту:

Код

Collections.sort(list);


PM WWW   Вверх
Слава
Дата 3.11.2005, 23:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В том то и дело что именно в ArrayList надо. Метод создает новый объект и помещает его в коллекцию в алфавитном порядкею
  Вверх
Guest
Дата 3.11.2005, 23:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Stampede @ 3.11.2005, 23:17)
Цитата
Как можно добавить объекты в ArrayList по названию(String). в алфавитном порядке.


Если по условию задачи такое подходит, то можно создать список в том порядке, в каком уж получится, а потом в одну строчку упорядочить по алфавиту:

Код

Collections.sort(list);

К сожалению нет, метод должен все это дело после его запуска.
  Вверх
LSD
Дата 3.11.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Тогда только вручную. При вставке сканируешь ArrayList пока не найдешь нужную позицию для данного элемента и вставляешь его. Но это очень неэффективно с точки зрения производительности.

А чем вызвано требование использовать именно ArrayList? Просто к этой задаче он не очень хорошо подходит.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Слава
Дата 3.11.2005, 23:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(LSD @ 3.11.2005, 23:30)
Тогда только вручную. При вставке сканируешь ArrayList пока не найдешь нужную позицию для данного элемента и вставляешь его. Но это очень неэффективно с точки зрения производительности.

А чем вызвано требование использовать именно ArrayList? Просто к этой задаче он не очень хорошо подходит.

Просто коллекция уже существует и объекты добавляются туда другим методом. А вот теперь надо в алфавитном порядке.
  Вверх
LSD
Дата 3.11.2005, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Тогда производи вставку как я сказал.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Слава
Дата 3.11.2005, 23:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(LSD @ 3.11.2005, 23:45)
Тогда производи вставку как я сказал.

Ладно тогда .Спасибо.
  Вверх
igon
Дата 5.11.2005, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 1
Всего: 21



Хм, неясно, почему не годится вариант Stampede...
Код

Collections.sort(list);
можно ведь вызывать и после каждого добавления объекта к list.


--------------------
Хотите поговорить об этом?
PM   Вверх
chief39
Дата 5.11.2005, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(igon @ 5.11.2005, 04:39)
можно ведь вызывать и после каждого добавления объекта к list.

А это не накладно будет? smile
Это не из разряда "вызвать gc после выхода из любого метода или через каждые пять строчек кода"?

Цитата
Просто коллекция уже существует и объекты добавляются туда другим методом. А вот теперь надо в алфавитном порядке.

Я недопонял... Коллекция существует? А если её заменить? Или какой-то нестандартный механизм считывания?
И... я так понял, теперь будет твой метод добавления объектов. Или он будет работать наравне со старым "другим" методом?


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
KostenkoSergey
Дата 7.11.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Я думаю нужно просто перегрузить метод в наследнике :

Код

package test;
import java.util.*;
public class MyArrayList extends ArrayList{
  public boolean add(Object o) {
    //ensureCapacity(size + 1);  // Increments modCount!!
    //elementData[size++] = o;
    return true;
  }
}


Реализации могут отличаться - хочешь работаешь с массивом, хочешь просто дописываешь вызов метода сортировки...
PM ICQ   Вверх
LSD
Дата 7.11.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(KostenkoSergey @ 7.11.2005, 10:35)
Я думаю нужно просто перегрузить метод в наследнике :

Он же писал что заменить ArrayList на другой класс не может, по некоторым причинам.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
KostenkoSergey
Дата 7.11.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Цитата
Метод создает новый объект и помещает его в коллекцию в алфавитном порядкею
- именно в ArrayList такого метода нет.

Цитата(LSD @ 7.11.2005, 10:37)
заменить ArrayList на другой класс не может

я это понял как : "не может пользоваться альтернативами(сетами, коллекциями...)"



PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.