我有一个名为Pessoa
Classe Pessoa {
Id Integer,
Nome String
}
在另一部分中,我有一个这个类的对象列表:
List<Pessoa> pessoas = getPessoas();
上述代码可以正常运行,但我需要将其转换为List<String>
,其中只包含Nome
类的Pessoa
字段。
我该怎么做?
答案 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}