Отображение карты в список объектов, который содержит имя и параметр значения - PullRequest
0 голосов
/ 26 апреля 2020

Мне нужно сопоставить карту со списком объектов (имеет параметры 'name' и 'value').

Что я пробовал:

  • Создание 2 списков строки, одна для имени, другая для значения. Затем выполняется перебор списка объектов и назначение списка ключей параметру name и списка значений параметру value. Это работает, но очень грязно и выглядит довольно некрасиво.

У меня вопрос, есть ли способ кратко поставить те же логи c, используя Mapstruct, или, если нет, Java 8?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Попробуйте: это предполагает, что у вас есть конструктор.

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());
0 голосов
/ 26 апреля 2020

Предположим, у вас есть карта с именем и значением

Map<String, String> params;

Вы можете использовать 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)));
...