Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

аналог ConcurrentSkipListSet
Список форумов
 ->  Коллекции (Java Collection Framework)


На страницу Пред.  1, 2 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
Jean : 1992
JavaTalks Team Member
Откуда: Санкт-Петербург

СообщениеИюн 06, 2011 21:31 
Ответить с цитатой
rage писал(а):
map не подходит, так как нужно что бы заменялись только аналогичные таски с одинаковым весом, могут быть и не аналогичные таски с одинаковым весом.

А как вы их в Set'е отличаете тогда?
_________________
Всякое решение плодит новые проблемы
К началу Посмотреть профиль Отправить личное сообщение
rage : 27
Новичок

СообщениеИюн 07, 2011 9:33 
Ответить с цитатой
Jean писал(а):
rage писал(а):
map не подходит, так как нужно что бы заменялись только аналогичные таски с одинаковым весом, могут быть и не аналогичные таски с одинаковым весом.

А как вы их в Set'е отличаете тогда?

Отличаю? Отличаю от чего?
К началу Посмотреть профиль Отправить личное сообщение
Taky_ : 491
Бывалый

СообщениеИюн 07, 2011 10:38 
Ответить с цитатой
Еще раз, сначала...
У вас есть объект: Таска. Вы хотите получать таску по весу, а в таске есть значимое информативное поле, которое хотите вытянуть или стратегия, не важно. Для этого делаете свой компаратор по весу и ложите в Сет.
После необходимо в этот сет ложить новую таску, пусть с другой стратегией, но тем же весом. А таска не заменяется... Вам предлагают делать мапу... но:
Цитата:
map не подходит, так как нужно что бы заменялись только аналогичные таски с одинаковым весом, могут быть и не аналогичные таски с одинаковым весом.

Под аналогичным вы понимаете равеноство equals? Т.е. в сете может храниться несколько тасок с одинаковым весом? А компаратор значимыми полями при сравнении считает не только поля объекта.
Тогда можно: Map<Weight,Set<Task>>. Если equals вернет true, а вам надо заменить объект, то таски не эквивалентны, и не равны в логическом смысле, => equals не верен.
К началу Посмотреть профиль Отправить личное сообщение
rage : 27
Новичок

СообщениеИюн 07, 2011 10:46 
Ответить с цитатой
Если сначала, то:
Есть несколько типов тасков, в общем случае они сортируются по весу, но если добавляется таск с одинаковым весом и одинаковым типом то новый таск должен заменить старый.
Задача проще некуда, но похоже для решения придется городить свой сет.
К началу Посмотреть профиль Отправить личное сообщение
Skipy : 4801
Я тут живу!
Откуда: Москва, Россия

СообщениеИюн 07, 2011 14:08 
Ответить с цитатой
Map, в качестве ключа составной класс "тип таска+вес", реализация - TreeMap, внешний компаратор по весам тасков.
_________________
С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других!
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
 
Начать новую тему  Ответить на тему
Страница 2 из 2
На страницу Пред.  1, 2
Список форумов
 -> Коллекции (Java Collection Framework)


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru