繁体   English   中英

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

[英]Java: How convert a List of Object to List of String?

我有一堂课叫Pessoa

Classe Pessoa {
  Id Integer,
  Nome String
}

在另一部分中,我列出了此类的对象:

List<Pessoa> pessoas = getPessoas();

上面的代码可以正常工作,但是我需要将其转换为List<String> ,其中它仅包含Pessoa类的Nome字段。

我怎样才能做到这一点?

您可以使用Java 8 Streams轻松实现:

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

这是假设您的Pessoa类具有返回StringgetName()方法。

假设属性Nome是public,而“ pessoas”是您的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所说, 如果使用Java SDK 8或更高版本 ,使用Streams会更容易:

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

或者,使用Kotlin:

val names = pessoas.map{it.name}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM