使用 RxJava 使用 2 个键将 List<Object> 转换为 List<Map>
convert List<Object> to List<Map> with 2 keys using RxJava
我有一个对象列表,我想将其转换为具有 2 个键的地图列表。
代码示例
// list of books (objects)
List<Book> books = new ArrayList<>();
books.add(new Book(1, 6));
books.add(new Book(2, 2));
books.add(new Book(3, 9));
books.add(new Book(4, 18));
List<Map<String, Object>> booksMap = Collections.emptyList();
// convert list into list of maps using regular for-loop
// map structure with 2 keys
for (Book book : books) {
Map<String, Object> map = new HashMap<>();
map.put("id", book.getId());
map.put("quantity", book.getQuantity());
booksMap.add(map);
}
因此每个对象(书籍)都必须转换为包含 2 个键的 Map。
我的问题是如何使用 RxJava 做到这一点
所以你想订阅一个使用 fromIterable
便捷方法创建的 Observable,它接收你的书籍列表,然后它会一个接一个地发出项目,然后每个项目转换成一个 Map 最后分组使用 toList
运算符将它们放在列表中。
Observable.fromIterable(books)
.map(new Function<Book, Map<String, Object>>() {
@Override
public Map<String, Object> apply(Book book) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", book.id);
map.put("quantity", book.quantity);
return map;
}
})
.toList()
.subscribe(new Consumer<List<Map<String, Object>>>() {
@Override
public void accept(List<Map<String, Object>> mapsList) throws Exception {
System.out.println(mapsList);
}
});
我有一个对象列表,我想将其转换为具有 2 个键的地图列表。
代码示例
// list of books (objects)
List<Book> books = new ArrayList<>();
books.add(new Book(1, 6));
books.add(new Book(2, 2));
books.add(new Book(3, 9));
books.add(new Book(4, 18));
List<Map<String, Object>> booksMap = Collections.emptyList();
// convert list into list of maps using regular for-loop
// map structure with 2 keys
for (Book book : books) {
Map<String, Object> map = new HashMap<>();
map.put("id", book.getId());
map.put("quantity", book.getQuantity());
booksMap.add(map);
}
因此每个对象(书籍)都必须转换为包含 2 个键的 Map。
我的问题是如何使用 RxJava 做到这一点
所以你想订阅一个使用 fromIterable
便捷方法创建的 Observable,它接收你的书籍列表,然后它会一个接一个地发出项目,然后每个项目转换成一个 Map 最后分组使用 toList
运算符将它们放在列表中。
Observable.fromIterable(books)
.map(new Function<Book, Map<String, Object>>() {
@Override
public Map<String, Object> apply(Book book) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", book.id);
map.put("quantity", book.quantity);
return map;
}
})
.toList()
.subscribe(new Consumer<List<Map<String, Object>>>() {
@Override
public void accept(List<Map<String, Object>> mapsList) throws Exception {
System.out.println(mapsList);
}
});