从 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())
,在第二种情况下做类似的事情。)
我的数据库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())
,在第二种情况下做类似的事情。)