Как я могу создать живую подколлекцию на основе предиката?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу создать живую подколлекцию на основе предиката?

Сообщение Anonymous »

Справочная информация
У меня есть интерфейс

Код: Выделить всё

public interface ThingRegistry {

public Set getAllThings();
public Set getAllThingsWithProperty(String property);
}
И реализация

Код: Выделить всё

public class MemoryThingRegistry implements ThingRegistry {
private final Set things = new HashSet();

public Set getAllThings() {
return Collections.unmodifiableSet(this.things);
}

public Set getAllThingsWithProperty(final String property) {
return this.things.stream().filter((thing) -> thing.hasProperty(property)).collect(Collectors.toUnmodifiableSet());
}
}
Проблема
  • Набор, возвращаемый функцией getAllThings(), будет отражать любые изменения, внесенные в мой реестр
  • Однако набор, возвращаемый getAllThingsWithProperty(), не будет отражать эти изменения
Вопрос
Есть ли способ используя стандартные библиотеки Java или какую-то невероятно распространенную стороннюю библиотеку, чтобы возвращаемое значение getAllThingsWithProperty() было «живым» подмножеством? И.Е. он «поддерживается» исходным набором, но повторно применяет предикат каждый раз, когда к нему обращаются? Предпочтительно что-то, что можно применить к любой коллекции, поскольку у меня есть другой интерфейс реестра, который использует список.
Я знаю, что могу написать свой собственный набор реализации, но предпочел бы этого избежать.

Подробнее здесь: https://stackoverflow.com/questions/774 ... -predicate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SwiftData Cramcktime с использованием предиката макроса с общей моделью на основе протоколов
    Anonymous » » в форуме IOS
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как исправить живую отладку для флаттера
    Anonymous » » в форуме Android
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как отключить живую перезагрузку в Quarkus?
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как загрузить живую фотографию из PhotosPickerItem с помощью Transferable
    Anonymous » » в форуме IOS
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Когда я создал живую ссылку в github, она загружает только пустую страницу.
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»