映射映射到包含名称和值参数的对象列表

Mapping map to a list of objects which contains a name and a value parameter

我需要将 Map 映射到对象列表(具有参数 'name' 和 'value')。

我尝试过的:

我的问题是,有没有什么方法可以使用 Mapstruct 简洁地表达相同的逻辑,或者如果没有,Java 8?

试试这个:它假设你有一个构造函数。

class MyObject {
   String name;
   String value;
   public MyObject(String name, String value) {
      this.name = name;
      this.value = value;
   }
}

List<MyObject> objectList = map.entrySet().stream()
   .map(e->new MyObject(e.getKey(),e.getValue())).collect(Collectors.toList());

假设您有名称和值的映射

Map<String, String> params;

您可以使用 map() 将 Map 条目转换为新创建的对象,这些对象将存储在列表中。

HashMap<String, String> params = new HashMap<>();
        params.put("param1", "value1");
        params.put("param2", "value2");
        List<MyObject> list = params.entrySet().stream().map((entry) -> new MyObject(entry.getKey(), entry.getValue())).collect(Collectors.toList());
        list.forEach((myObject -> System.out.println(myObject)));