Как сортировать значения в Observable?

Допустим, у меня есть Observable, а у Player есть следующие поля (среди прочего):

enum Height, enum Status, enum Name

И я хочу вернуть Единственного лучшего игрока из этого Observable (оно не пустое): у которого есть либо height = Height.Tall, status = Status.Open, name = Name.Short (так что, если у него есть Height.Tall -> он лучший, и мне все равно о других полях -> вернуть этого игрока.Если ни одно значение, выдаваемое Observable (== no Player), не имеет Height.Tall -> давайте сравним статус и т. д. и вернем любого игрока, у которого есть Status.Open).

Я попытался написать компаратор, а затем использовать сбор (этот подход выглядит довольно хакерским, потому что я должен указать начальное значение), есть ли другой способ сделать это? (Я думал о фильтре и слиянии).


person Alex Kokorin    schedule 20.01.2018    source источник


Ответы (1)