简体   繁体   English

如何使用Java 8 Lambdas将对象列表转换为Map <Object,Object>

[英]How to convert List of Objects into Map<Object, Object> using Java 8 Lambdas

I have List of Objects say Car which Needs to be converted to Map. 我有对象列表说需要转换为地图的汽车。

    Public Class Car {
        private Integer carId;
        private Integer companyId;
        private Boolean isConvertible;
        private String carName;
        private String color;
        private BigDecimal wheelBase;
        private BigDecimal clearance;
    }

I have another object which I want to treat as key of Map. 我有另一个对象,我想把它当作Map的关键。

    public class Key<L, C, R> {
        private L left;
        private C center;
        private R right; 
   }

I want to create a map from List of Car objects. 我想从List of Car对象创建一个地图。

List<Car> cars;
Map<Key, Car> -> This map contains Key object created from 3 field of Car object namely carId, companyId, isConvertible.

I am unable to figure out how to do this using Java 8 Lambda 我无法弄清楚如何使用Java 8 Lambda执行此操作

cars.stream.collect(Collectors.toMap(?, (c) -> c);

In above statement, in place of ?, I want to create object of Key class using values present in current car object. 在上面的语句中,代替?,我想使用当前car对象中存在的值创建Key类的对象。 How can I achieve this? 我怎样才能做到这一点?

You can do: 你可以做:

Function<Car, Key> mapper = car -> new Key(car.getId(), 
                                           car.getCompanyId(), 
                                           car.isConvertible());
cars.stream().collect(Collectors.toMap(mapper, Function.identity());
cars.stream().collect(Collectors.toMap(c->new Key(c.getId(),...), Function.identity());

You can also try this : 你也可以试试这个:

    Map<Key, Car> carMapper = new HashMap<>();

    carlist.forEach(car -> carMapper.put(new Key(car.getCarId(), car.getCompanyId(), car.getIsConvertible()), car));

如何转换列表<object>至 Map<k, v> 使用 java stream<div id="text_translate"><p> 我想将List&lt;ObjectInList&gt;转换为Map&lt;K, V&gt;</p><pre> class ObjectInList { List&lt;Long&gt; listWithLong; Map&lt;String, Object&gt; dataMap; // there is 'id' key, and i want to use this id as key in map to be converted }</pre><p> 新的 map 格式如下</p><pre>String type; // this type is value of dataMap. List&lt;Long&gt; contents</pre><p> List&lt;Object&gt;中的每个 Object 都可以有重复的类型</p><p>例如</p><pre>///////// before converted //////////// [ { list: [1,2,3], dataMap: { type: "a", } }, { list: [4,5,6], dataMap: { type: "b", } }, { list: [7,8], dataMap: { type: "a", } }, ] ///////////// after converted ////////// { "a": [1,2,3,7,8], "b": [4,5,6] }</pre></div></k,></object> - How to convert LIst<Object> to Map<K, V> with using java stream

暂无
暂无

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

相关问题 将对象列表列表转换为地图-在Java 8中使用Lambda - Convert List of List of Object to a map - using lambdas in java 8 如何使用Java中的对象字段将对象列表转换为映射 - How to convert List of Objects to map using object's fields in Java 如何使用Java 8 Lambda将对象添加到其他列表中的列表中 - How to add object into a list inside of the other list using Java 8 lambdas 如何转换列表<object>至 Map<k, v> 使用 java stream<div id="text_translate"><p> 我想将List&lt;ObjectInList&gt;转换为Map&lt;K, V&gt;</p><pre> class ObjectInList { List&lt;Long&gt; listWithLong; Map&lt;String, Object&gt; dataMap; // there is 'id' key, and i want to use this id as key in map to be converted }</pre><p> 新的 map 格式如下</p><pre>String type; // this type is value of dataMap. List&lt;Long&gt; contents</pre><p> List&lt;Object&gt;中的每个 Object 都可以有重复的类型</p><p>例如</p><pre>///////// before converted //////////// [ { list: [1,2,3], dataMap: { type: "a", } }, { list: [4,5,6], dataMap: { type: "b", } }, { list: [7,8], dataMap: { type: "a", } }, ] ///////////// after converted ////////// { "a": [1,2,3,7,8], "b": [4,5,6] }</pre></div></k,></object> - How to convert LIst<Object> to Map<K, V> with using java stream 如何使用Java 8将对象列表映射到给定对象的值映射 - How to map List of objects to Map of values from the given object using java 8 如何转换清单 <Object> 进入清单 <Map<String,String> &gt;在Java8中 - How to convert List<Object> into List<Map<String,String>> in java8 如何使用 Java 8 Streams 迭代包含列表对象作为值的 Map 并将其作为单独的列表 Object - How to iterate over a Map that contains List Objects as value and get those as a separate List Object using Java 8 Streams 如何将 model 对象列表转换为 object arrays Z93F725A07423FE1C889F448B33ZD 列表 - how to convert list of model objects to list of object arrays java 如何使用Java流将一组对象转换为该对象的字段映射到一组字段? - How can I convert a Set of objects into a Map of the Object's fields to a set of fields using Java streams? 将对象数组列表转换为Java中的对象列表 - Convert List of object arrays to list of objects in Java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM