【发布时间】:2019-07-21 17:30:16
【问题描述】:
我有一个数组列表。如果我的数组中至少有一项是数字,我需要返回 true。 这是我的代码:
private boolean hasNumber(ArrayList<Item> items) {
return Observable.fromIterable(items)
.filter(Item::isNumber)
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(items-> items.size() > 0)
.subscribe(result -> "");
}
但是我不能从这个方法返回真/假。我不明白如何用 rxJava 返回值。请帮帮我。
【问题讨论】:
-
@GhostCat 他正在努力学习。没有错。
-
@PrashantPandey 我不同意。您通过寻找有意义的应用程序来学习概念。做一些没有意义的事情,可以用 3 行老式的 for-each 循环来完成,或者一个简单的单行 stream() 表达式不太有用。另请注意,这个社区专注于高质量的内容,因此即使是问题也应该清楚并以某种方式理由,以便未来的读者能够理解他们的意思。这个问题询问如何用机枪打开罐子。你没有,你用开罐器。
-
@GhostCat,这只是举例。事实上,我有一个非常大的数据列表。我需要为每个元素计算一个复杂的公式,如果在计算公式后至少有一个元素变为零,则返回 true。我需要不要在 UI 线程中进行此计算
-
@GhostCat,公式的计算需要几秒钟。当我循环执行此操作时,应用程序会冻结。
-
@GhostCat,这是一个android应用程序,我不需要swing。我只需要不在 UI 线程中执行操作,因为它会阻塞它