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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boolean removeAll(Collection<?> c), а если у меня не коллекция, а List? 
:(
    Опции темы
polosatij
  Дата 15.11.2004, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



народ.. столкнулся с такой проблемой недавно:

Код

java.awt.List list= new ArrayList();

...

list.add(new int[]{1, 2, 3});
list.add(new int[]{2, 4, 5});
...

list.removeAll(...); // ... = Collection ??


метода removeAll запрашивает в качестве параметра коллекцию.. smile
и как мне в данном примере осушествить removeAll smile

я поступил следуюшем образом:

Код

list = new ArrayList();


но мне кажется что это немного коряво.. из за того, что наверно в памяти останется (неизвестно на сколько, пока GC очистит) старый объект list.. я не прав smile


--------------------
PM   Вверх
Domestic Cat
Дата 15.11.2004, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Если ты хочешь удалить все элементы листа, то есть clear() smile


--------------------

PM   Вверх
Zandr
Дата 23.11.2004, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 13



Я че-то недопонял smile smile smile smile
Domestic Cat, ты то куда смотрел?
Код

java.awt.List list= new ArrayList();

smile
Короче, если ArrayList, то это тоже Collection (как и LinkedList и все, что implements Collection) так что смело юзай
Код

list.removeAll();


PM MAIL   Вверх
Domestic Cat
Дата 23.11.2004, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата(Zandr @ 22.11.2004, 23:12)
Короче, если ArrayList, то это тоже Collection (как и LinkedList и все, что implements Collection) так что смело юзай
Код

list.removeAll();


При повторном рассмотрении ясно что ничего не ясно - то ли это аветешный лист, то ли утилитный. Скорее всего, утилитный ибо к аветешному нафик добавлять массивы?

Тогда:
1. У интерфейса List метода removeAll() нет, есть метод removeAll(Collection).

2. clear() является наиболее оптимальным решением



--------------------

PM   Вверх
Zandr
Дата 23.11.2004, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 13



Блин smile И то верно smile Чет я тоже затупил smile smile smile
PM MAIL   Вверх
DarkDS
Дата 23.11.2004, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Цитата(Domestic @ 23.11.2004, 08:20)
Тогда:
1. У интерфейса List метода removeAll() нет, есть метод removeAll(Collection).

Предназначенно чтобы удалить из листа все элементы, которые есть в коллекции
То есть это сделанно чтобы не перебирать коллекцию и не удалять поэлементно.

Цитата

2. clear() является наиболее оптимальным решением

Это предназначенно чтобы удалить все элементы из листа.

Это сообщение отредактировал(а) DarkDS - 23.11.2004, 15:36
PM MAIL   Вверх
Domestic Cat
Дата 23.11.2004, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



]о ведь автор пишет:

Цитата
я поступил следуюшем образом:
Код
list = new ArrayList();


значит, подразумевается удаление всех элементов smile


--------------------

PM   Вверх
polosatij
Дата 25.11.2004, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



Цитата(Domestic @ 23.11.2004, 16:14)
значит, подразумевается удаление всех элементов


да.. но подразумевается.. старые ведь в памяти остаются пока GC не прийдёт..
или я ошибаюсь smile



--------------------
PM   Вверх
AntonSaburov
Дата 25.11.2004, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Цитата(polosatij @ 25.11.2004, 16:08)
старые ведь в памяти остаются пока GC не прийдёт

Вот сразу видно, что человек на Си сидел smile

Да тебе уже эти элементы НЕ ДОСТУПНЫ. Если конечно на них еще кто-то не указывает. Это типа как бумагу выкинуть в мусорное ведро. Она как бы еще есть, но через час придет уборщица и все уберет.
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 25.11.2004, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
да.. но подразумевается.. старые ведь в памяти остаются пока GC не прийдёт..
или я ошибаюсь 


естественно, их удаляет GC


--------------------

PM   Вверх
Entry_N3
Дата 26.3.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



AntonSaburov, классная аналогия с мусорным ведром  smile 
PM MAIL   Вверх
nornad
Дата 26.3.2007, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(polosatij @  25.11.2004,  18:08 Найти цитируемый пост)
да.. но подразумевается.. старые ведь в памяти остаются пока GC не прийдёт.. 

А вы, собственно, хотите, чтобы объекты однозначно сразу же и были удалены из памяти? Здесь вам не тут и такого вам не гарантирует даже принудительный запуск GC.  smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
powerOn
Дата 26.3.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

Репутация: 47
Всего: 159



вы бы еше постарее тему подняли.


--------------------
user posted image нет времени думать - нужно писать КОД!

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

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

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


 




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


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

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