RxJava сортировка списка по одну из эллементов

Имею json из такими строками как title, time, click_url, img, type, top и тд. Я получаю список эллеметов со строками которые я описал выше. Мне нужно Получить список эллеметов который будет иметь одинаковый тип

model.getType().equals("FAVOURITE")

а все прочие эллементы не должны попасть в этот список.

Я пробовал и Maybe и .map и .flatmap и .filter и .skip() и .contains пока что безуспешно.

Вот модель

public class Model {
    @SerializedName("title")
    private String title;

    @SerializedName("type")
    private String type;

    @SerializedName("img")
    private String img;

    @SerializedName("click_url")
    private String click_url;

    @SerializedName("time")
    private String time;


    public Model(String title, String img, String click_url, String time, String type) {
        this.title = title;
        this.type = type;
        this.img = img;
        this.click_url = click_url;
        this.time = time;
    }

    public String getTitle() {
        return title;
    }

    public String getType() {
        return type;
    }

    public String getImg() {
        return img;
    }

    public String getClick_url() {
        return click_url;
    }

    public String getTime() {
        return time;
    }
}

вот rxjava кусок кода

    private final CompositeDisposable disposable = new CompositeDisposable();
 private void fetchData() {
        disposable.add(iGetterJSON.getList()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .map(unsortedList -> {
                    List<Model> sortedList = new ArrayList<>(unsortedList.size());
                    Collections.copy(sortedList, unsortedList);
                    Collections.sort(sortedList, new Model.MyComparator());
                    return sortedList;
                })
                .subscribe((Consumer<List<Model>>) this::initRecyclerView));
    }

интерфейс для Retrofit2

@GET("/")
Observable<List<Model>> getList();

Мой компаратор но как мне получить имменно тот список что мне нада я так и не понял(

public static class MyComparator implements Comparator<Model> {

        @Override
        public int compare(Model model, Model t1) {
            if (model.getType().equals(TYPE_FAVOURITES)){
                return 1;
            } else if (model.getType().equals(TYPE_STORIES)){
                return 2;
            } else if (model.getType().equals(TYPE_VIDEO)){
                return 3;
            } else {
                return 0;
            }
        }
    }

Ответы (1 шт):

Автор решения: ЮрийСПб

Вам надо поменять данные в источнике данных. Для этого есть оператор map. В нём можно стандартными средствами отсортировать список. Примерно так:

.map { list ->
   Collections.sort(list, Comparator { c1, c2 -> c1.type.compareTo(c2.type) })
}
→ Ссылка