从 java 中的 Flowable 获取列表的最简单方法是什么?

What's the easiest way to get a list from a Flowable in java?

我的数据库returns一个像这样的Flowable:

Flowable<List<Users>> users = MyActivity.myDatabase.myDAO().getUsers();

我想快速轻松地将它转换为列表,以便我可以对它进行计数、遍历它并可能将它作为 ArrayList 传递。使用 Java 的最佳方法是什么?

您将不得不使用阻塞调用来实际检索值。但是,从问题中不清楚您需要的是单个用户列表还是用户列表列表。

如果您想要一个 List<Users>,您可以这样做:

List<Users> usersList = users.blockingFirst();

如果您需要用户列表列表,则需要执行以下操作:

List<List<Users>> userLists = users.toList().blockingGet();

在任何一种情况下,如果您特别需要一个 ArrayList,您将不得不构建一个并复制元素,因为没有确切说明上述代码是哪种 List 实现return。 (例如,您可以在第一种情况下做 new ArrayList<>(users.blockingFirst()),在第二种情况下做类似的事情。)