簡體   English   中英

RxJava發出不同周期的項目

[英]RxJava emit items with different periods

我有一個Hashmap

    private HashMap<Integer, ArrayList<EmitedItem>> contentHashMap;

每個EmitedItem為

public class EmitedItem {
public int duration;
public String title;}

而且我必須立即從每個ArrayList中獲取第一個元素,然后在前一個持續時間之后獲取第二個元素。 我不確定如何使用RxJava執行此操作

您可以為內部列表中的每個項目構建一個Observables列表,並且延遲量會不斷增加:

Map<Integer, List<Item>> map = new HashMap<>();

map.put(1, Arrays.asList(Item.of(0, "A"), Item.of(1, "B"), Item.of(1, "C")));
map.put(2, Arrays.asList(Item.of(0, "D"), Item.of(1, "E")));

List<Observable<Item>> emitter = new ArrayList<>();

for (List<Item> list : map.values()) {
    int time = 0;

    for (Item i : list) {
        time += i.duration;
        emitter.add(Observable.just(i).delay(time, TimeUnit.SECONDS));
    }
}

Observable.merge(emitter).map(v -> v.title)
.toBlocking()
.subscribe(System.out::println);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM