Java:如何将对象列表转换为字符串列表?

时间:2015-03-05 17:32:38

标签: java

我有一个名为Pessoa

的班级
Classe Pessoa {
  Id Integer,
  Nome String
}

在另一部分中,我有一个这个类的对象列表:

List<Pessoa> pessoas = getPessoas();

上述代码可以正常运行,但我需要将其转换为List<String>,其中只包含Nome类的Pessoa字段。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用Java 8 Streams轻松完成:

List<String> names = pessoas.stream().map(Pessoa::getName).collect(Collectors.toList());

这假设您的Pessoa班级有一个getName()方法返回String

答案 1 :(得分:0)

假设属性Nome是公共的,并且&#34; pessoas&#34;是你的Pessoa列表:

public List<String> getNomes(List<Pessoa> pessoasList) {
            List<String> nomes = new ArrayList<>();

            for(Pessoa pessoaObj : pessoasList){
                    nomes.add(pessoaObj.nome)
            }    

            return nomes;

}

如果您没有理解for循环,我建议您稍微搜索一下该循环语法。它适用于列表。简单易行。

编辑: 正如Eran所说,使用Streams更容易,如果使用Java SDK 8或更新

List<String> names = pessoas.stream().map(Pessoa::getName).collect(Collectors.toList());

或者,使用Kotlin:

val names = pessoas.map{it.name}