java 如何将Map转换为列表?

falq053o  于 2023-08-01  发布在  Java
关注(0)|答案(2)|浏览(164)

将一个贴图值转换为一个对象列表(每个贴图值都包含该特定对象)的最简单方法是什么?示例程序演示我的问题如下。

public class MySubObject
{
  private int id;

  private String name;

  private int age;

  public MySubObject(int id, String name, int age)
  {
    this.id = id;
    this.name = name;
    this.age = age;
  }

  public int getId()
  {
    return id;
  }

  public String getName()
  {
    return name;
  }

  public int getAge()
  {
    return age;
  }
}

个字符
我知道getNames()方法中的逻辑可以使用Java8语言特性简化为一行。但需要一些帮助。

kr98yfug

kr98yfug1#

如果只需要单个项,可以用getAge()或getId()替换getName()。如果你想把整个对象存储在列表中,你可以使用第二个例子。

// List of Names
    List<String> names = myMap.values()
            .stream().map(MySubObject::getName)
            .collect(Collectors.toList());
    System.out.println(names);

    // List of objects
    List<MySubObject> mySubObjectsist = myMap.values()
            .stream().map(n -> n)
            .collect(Collectors.toList());

    mySubObjectsist.forEach(n -> {
        System.out.println(n.getId()
                + " " + n.getName() + " " + n.getAge() + " ");
    });

字符串

v8wbuo2f

v8wbuo2f2#

Java 8流
此处的概念:

您可以使用map()函数通过对集合进行流操作并将其收集到列表中,将给定对象转换为属性类型中的任何类型。在本例中,它将MySubObject对象转换为String,即.map(MySubObject::getName)

验证码:

myMap.values().stream().map(MySubObject::getName).collect(Collectors.toList());

字符串

相关问题