LINUX.ORG.RU

RingBuffer для списка последних сообщений

 ,


0

1

что-то не могу найти среди всего разнообразия java контейнеров нужный для моего извращенного случая.

если вкратце то нужно что-то типа того, хотя достаточно и обычной очереди:

Collections.synchronizedMap(new LinkedHashMap<Integer, Object>()
{
    @Override
    protected boolean removeEldestEntry(Map.Entry<Integer, Object> eldest)
    {
       return this.size() > MAX_SIZE;   
    }
});

но

- записи будет очень много из разных потоков.

- чтения будет мало и читаться будет все целиком, те snapshot, тоже из разных потоков.

- скорость чтения не важна.

- порядок сообщений важен.

★★

deque можно использовать или свой сочинить на базе массива. работы на пару часов.

набор «коллекций» сделан кривыми руками Блоха, а не спущен на гору Синах на скрижалях - поэтому это не то, что нужно использовать обязательно, если не подходит по каким-то критериям ничего.

dzidzitop ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.