映射映射到包含名称和值参数的对象列表
Mapping map to a list of objects which contains a name and a value parameter
我需要将 Map 映射到对象列表(具有参数 'name' 和 'value')。
我尝试过的:
- 正在创建 2 个字符串列表,一个用于名称,另一个用于值。然后迭代对象列表并将键列表分配给 '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)));
我需要将 Map 映射到对象列表(具有参数 'name' 和 'value')。
我尝试过的:
- 正在创建 2 个字符串列表,一个用于名称,另一个用于值。然后迭代对象列表并将键列表分配给 '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)));