![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Нужен пример работы с интерфейсом java.utils.Queue
Подкиньте может кто-нибудь? В гугле по этому запросу почему-то всего одна ссылка: http://www.google.de/search?hl=de&q=ja...Suche&meta= |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Я нашел некоторую информацию тут: http://www.galileocomputing.de/openbook/ja...0008.htm#bild99 (на немецком)
Там в пример приведен следующий код:
У меня по этому код есть вопросы: 1. Что это означает? public synchronized Object dequeue() public - это тип метода dequeue - это название А остальное??? |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Хм....
Ну вообщем то это обычная очередь, причем в зависимости от реализации она может быть как FIFO, так и LIFO. Простейший пример:
Но это конечно полная банальщина, самые вкусные очереди находятся в java.util.concurrent. Добавлено @ 22:28
Object - тип возвращаемого значения synchronized - метод синхронизирован, т.е. его одновременно может вызывать только один поток. У нас в FAQ есть статья на эту тему. Но это просто пример реализации очереди (причем неудачный), но отношения в интерфейсу java.util.Queue он не имеет. -------------------- 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. |
||||
|
|||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
А как можно с очередью работать через интерфейс java.utils.Queue ? Вроде в приведенном мною примере, мы просто создали отдельный класс Queue, который основан на Vektor из java.util.*; ?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ты лучше скажи задачу, потому что реальная польза от Queue будет при использовании пакета java.util.concurrent, а это уже многопоточное программирование и совсем другая песня.
-------------------- 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. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
А откуда в твоем примере взялся LinkedList ? Это какой-то стандартный класс, который очередь реализует?
|
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Надо чтобы наш класс Queue реализовывал этот интерфейс.
Да. -------------------- 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. |
||||
|
|||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
У меня есть класс, который реализует человека. И вот мне надо создать 10 человек и поставить их в очередь. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Да, это один из стандартных классов которые реализуют очередь. Но вообще их много: AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue, поэтому я ии спросил про задачу. -------------------- 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. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
||||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Если многопоточности нет, то используй LinkedList. Если есть то надо смотреть на поведение при поступлении нового объекта, что делать когда очередь пуста и т.д. -------------------- 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. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Такс.. я могу ли я вместо Vektor или же LinkedList очередь через ArrayList сделать?
Какая разница между LinkedList и ArrayList ? |
|||
|
||||
LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Правильно, но надо будет реализовать все методы в интерфейсе java.utils.Queue (а их много), и не желательно называть свои классы именами совпадающими со стандартными классами (хотя и допустимо если объект в другом пакадже). Добавлено @ 22:48
Запросто, причем даже не обязательно реализовывать очередь (java.utils.Queue). У них есть методы add() - добавить в конец списка и remove() удалить i-тый элемент. В принципе все что надо для простейшей очереди есть.
В реализации, ArrayList использует массив для хранения элементов, а LinkedList двусвязный список. Соответсвенно вставка не в конец списка и удаление не из конца списка в ArrayList долгие операции (если массив большой), а у LinkedList долгий поиски i-того элемента (но для очереди это не надо). Это сообщение отредактировал(а) LSD - 12.1.2006, 22:50 -------------------- 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. |
||||||
|
|||||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
||||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Конечно! В принципе можно оставить метод пустым или выбрасывать исключение UnsupportedOperationException, но не реализовать их нельзя, компилятор не будет компилировать такой класс. -------------------- 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. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |