简体   繁体   English

转换清单 <Object> 列出 <Map> 使用RxJava使用2个键

[英]convert List<Object> to List<Map> with 2 keys using RxJava

I have a list of objects and I want to convert it to a list of maps that have a 2 keys. 我有一个对象列表,我想将其转换为具有2个键的地图列表。

code example 代码示例

// 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);
}

So each object (book) have to be converted to a Map which hold a 2 keys. 因此,每个对象(书)都必须转换为具有2个键的Map。

My question is how to do it using RxJava 我的问题是如何使用RxJava做到这一点

So you want to subscribe to an Observable created with the fromIterable convenience method which receives your list of books, afterwards it will emit the items one by one, then every item transformed into a Map and finally group them up in a list using the toList operator. 因此,您想订阅一个由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);
        }
    });

转换列表<object>映射<div id="text_translate"><p>我有一个包含四个字段的Employee类:id、name、department 和 email。 我创建了五个对象,设置了值并将它们全部添加到列表中。</p><p> 现在,我想将该列表转换为地图,但我做不到。 供您参考,这是我尝试过的代码</p><pre>Employee emp1 = new Employee("1", "Mayank", "HR", "mayank@gmail.com"); Employee emp2 = new Employee("2", "Mahesh", "Trainer", "Mahesh@gmail.com"); Employee emp3 = new Employee("3", "Vipul", "SEO", "Vipul@gmail.com"); Employee emp4 = new Employee("4", "Ajay", "Devlopwr", "Ajay@gmail.com"); Employee emp5 = new Employee("5", "Rakesh", "Marketing", "Rakesh@gmail.com"); //add class object to list List &lt; Employee &gt; listWmp = new ArrayList &lt; &gt; (); listWmp.add(0, emp1); listWmp.add(1, emp2); listWmp.add(2, emp3); listWmp.add(3, emp4); listWmp.add(4, emp5); System.out.println("list elements are: " + listWmp); //convert the list into map Map &lt; String, Employee &gt; listMap = new HashMap &lt; &gt; (); for (Employee employee: listWmp) { listMap.put(employee.getEmpId(), employee.getEmpBame()); }</pre><p> 如何将列表转换为地图?</p></div></object> - convert List<object> to map

如何转换列表<string[]>列出<object>使用 modelmapper 或 stream().map()?<div id="text_translate"><p> 我有以下数据作为 java 中的 String[] 列表,是否可以使用 stream().map() 进行转换? 这是列表的一个示例。</p><pre> Data's type is List&lt;String[]&gt; data which contains the following structure: ["a","b","c","d"], ["e","f","g","e"], ["e","f","g","e"]</pre><p> 我试图用modelMapper和没有modelMapper的map我的值并且数据是空的:</p><pre> List&lt;Custom&gt; mapInfo = new ArrayList&lt;CustomData&gt;(); mapInfo=data.stream().map(objectModel -&gt; modelMapper.map(objectModel, CustomData.class)).collector(Collectors.toList());</pre><p> 但是,当我尝试使用数据时,数组的每个 object 上的 object 结构都是空的:</p><pre> @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class CustomData(){ @Builder.Default private String valueA=""; @Builder.Default private String valueB=""; @Builder.Default private String valueC=""; @Builder.Default private String valueD=""; }</pre></div></object></string[]> - How to convert List<String[]> to List<Object> using modelmapper or stream().map()?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 RxJava - 将列表和请求转换为地图 - RxJava - convert list and request into map 如何使用rxJava将源对象列表转换为结果对象列表 - How to convert a source object list to a resultant object list using rxJava 转换列表<object>映射<div id="text_translate"><p>我有一个包含四个字段的Employee类:id、name、department 和 email。 我创建了五个对象,设置了值并将它们全部添加到列表中。</p><p> 现在,我想将该列表转换为地图,但我做不到。 供您参考,这是我尝试过的代码</p><pre>Employee emp1 = new Employee("1", "Mayank", "HR", "mayank@gmail.com"); Employee emp2 = new Employee("2", "Mahesh", "Trainer", "Mahesh@gmail.com"); Employee emp3 = new Employee("3", "Vipul", "SEO", "Vipul@gmail.com"); Employee emp4 = new Employee("4", "Ajay", "Devlopwr", "Ajay@gmail.com"); Employee emp5 = new Employee("5", "Rakesh", "Marketing", "Rakesh@gmail.com"); //add class object to list List &lt; Employee &gt; listWmp = new ArrayList &lt; &gt; (); listWmp.add(0, emp1); listWmp.add(1, emp2); listWmp.add(2, emp3); listWmp.add(3, emp4); listWmp.add(4, emp5); System.out.println("list elements are: " + listWmp); //convert the list into map Map &lt; String, Employee &gt; listMap = new HashMap &lt; &gt; (); for (Employee employee: listWmp) { listMap.put(employee.getEmpId(), employee.getEmpBame()); }</pre><p> 如何将列表转换为地图?</p></div></object> - convert List<object> to map 转换列表<Map>列出<Map<String,Object> &gt; - Convert List<Map> to List<Map<String,Object>> 将对象列表列表转换为地图-在Java 8中使用Lambda - Convert List of List of Object to a map - using lambdas in java 8 如何转换列表<string[]>列出<object>使用 modelmapper 或 stream().map()?<div id="text_translate"><p> 我有以下数据作为 java 中的 String[] 列表,是否可以使用 stream().map() 进行转换? 这是列表的一个示例。</p><pre> Data's type is List&lt;String[]&gt; data which contains the following structure: ["a","b","c","d"], ["e","f","g","e"], ["e","f","g","e"]</pre><p> 我试图用modelMapper和没有modelMapper的map我的值并且数据是空的:</p><pre> List&lt;Custom&gt; mapInfo = new ArrayList&lt;CustomData&gt;(); mapInfo=data.stream().map(objectModel -&gt; modelMapper.map(objectModel, CustomData.class)).collector(Collectors.toList());</pre><p> 但是,当我尝试使用数据时,数组的每个 object 上的 object 结构都是空的:</p><pre> @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class CustomData(){ @Builder.Default private String valueA=""; @Builder.Default private String valueB=""; @Builder.Default private String valueC=""; @Builder.Default private String valueD=""; }</pre></div></object></string[]> - How to convert List<String[]> to List<Object> using modelmapper or stream().map()? 如何将哈希映射键转换为列表? - How to convert hash map keys into list? 将List转换为Map并过滤空键 - Convert List to Map and filter null keys 如何将一组Map键转换为数组列表 - How to convert a set of Map keys to an Array List 转换清单 <Object[]> 排列成地图 - Convert List<Object[]> Array into Map
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM