当前位置: 首页 > 知识库问答 >
问题:

使用rxjava2遍历列表

阮轶
2023-03-14

我有一个自定义对象列表(list

public class Item {
    private String itemId;
    private String itemName;
}

初始列表只有itemName;itemId将为空。我想遍历列表并为每个项目添加一个itemId,然后使用新列表,我需要对列表中的每个项目进行某种长操作。

for(Item item : itemsList){
item.setitemId = getUniqueId(); //getUniqueId() returns an unique id
doSomeLongOperation(item);
}

我是rxjava操作符的新手。请帮助我如何使用rxjava2实现同样的功能。

谢啦!


共有1个答案

司徒英卓
2023-03-14
匿名用户

使用Observable.fromIterable迭代List中的所有项目,并在后台线程上订阅进行后台工作,然后使用Map运算符更新您的Item并做您长时间运行的工作。完成后返回您需要的内容。

示例代码:

        Observable.fromIterable(itemList)
            .subscribeOn(Schedulers.io())
            .map(new Function<Item, Item>() {
                @Override
                public Item apply(Item item) throws Exception {
                     item.setItemId("Id: " +  System.currentTimeMillis());
                      Log.i(TAG, "In Map Item: " + item.toString());
                      // do some long operation and return 

                     return item;
                }
            })
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<Item>() {
                @Override
                public void accept(Item item) throws Exception {
                    Log.i(TAG, "Item: " + item.toString());
                }
            });

 类似资料:
  • 输入是一个列表列表。请看下面。文件名是一个列表,包含的名称与列表中的列表数量相同(,,) 每个名称都附加到路径中:-- 程序在遍历列表时遍历包含路径的列表,并打印路径及其文件名。我希望输出是--。然而,我得到了下面的输出。请查看输入后的输出 输入 输出 我希望输出是-- 然而,我得到的结果如下: 我无法理解为什么在遍历列表时不能使用文件名遍历路径列表。我希望这有助于澄清问题。有人能帮忙吗? 我已经

  • 问题内容: 我想要一种算法来遍历列表切片。切片大小在功能之外设置,可以不同。 在我看来,这就像: 有没有一种使用python 2.5正确定义的方法或其他方法? edit1:澄清 “分区”和“滑动窗口”这两个术语听起来都适用于我的任务,但是我不是专家。因此,我将更深入地解释该问题并添加到问题中: FatherList是我从文件中获取的一个多级numpy.array。函数必须找到序列的平均值(用户提供

  • 问题内容: 我有两个列表和数字,我想使用相同的指令遍历它们。像这样: 但这感觉多余。我知道我会写,但是要付出一定的时间。 有没有办法做到这一点而又不浪费时间呢? 问题答案: 这可以通过以下方式完成 : 将打印: 根据文档,请执行以下操作: 创建一个迭代器,该迭代器从第一个可迭代对象返回元素,直到耗尽为止,然后继续进行下一个可迭代对象,直到所有可迭代对象都耗尽为止。 如果列表中有列表, 则可用: 产

  • 本文向大家介绍common-lisp 遍历列表,包括了common-lisp 遍历列表的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用~{和~}指令遍历列表。 ~^ 如果没有更多元素了,可以用来转义。 可以使用数字参数~{来限制可以执行的迭代次数: ~@{ 将遍历其余参数,而不是列表: 子列表可以使用~:{以下命令进行迭代:            

  • 问题内容: 我有一个列表-myList-每个元素都是一个字典。我希望遍历此列表,但是每次只在每本词典中使用一个属性-“ age”来表示有趣。我也对保持迭代次数感兴趣。 我做: 但是我想知道是否还有更多的pythonic。有小费吗? 问题答案: 您可以使用生成器仅获取年龄。 而且,是的,不要使用分号。

  • 问题内容: 我想从MySQL表中获取所有列名,遍历每个列名,然后使用这些列名作为变量运行存储过程。效果: 看起来会给我列名,但是如何将列名放入循环? 我真的很想使用本机SQL在存储过程中运行所有这些程序。由于我仍在学习MySQL的复杂性,因此对我的项目确实有帮助。谢谢你的帮助。 问题答案: 我想你想要这样的东西: