用java创建子列表的捷径
从其他列表创建子列表是否有较短的方法? 例如: 我有一个用java创建子列表的捷径,java,list,Java,List,从其他列表创建子列表是否有较短的方法? 例如: 我有一个联系人对象,该对象包含字符串地址字段 public List<String> getAdreses(long personID) { List<String> adreses=null; for(Contact mail : getContacts(personID)){ adreses.add(mail.getMail()); }
联系人
对象,该对象包含字符串
地址字段
public List<String> getAdreses(long personID) {
List<String> adreses=null;
for(Contact mail : getContacts(personID)){
adreses.add(mail.getMail());
}
return adreses;
}
公共列表getAddresses(长人名){
列表地址=空;
用于(联系人邮件:getContacts(personID)){
add(mail.getMail());
}
返回地址;
}
试试Java:
List address=getContacts(personID).stream().map(Contact::getMail).collect(Collectors.toList())
试试Java:
List address=getContacts(personID).stream().map(Contact::getMail).collect(Collectors.toList())
可能与@smoke重复,您的代码将无法正常运行。。。您已初始化地址列表,如。。。ListAddresses=null;稍后您将向其中添加元素,如:adreses.add(mail.getMail());但是您还没有初始化地址,比如:List addres=new ArrayList();它将抛出NullPointerException…可能是@smoke的副本,您的代码将不会按原样运行。。。您已初始化地址列表,如。。。ListAddresses=null;稍后您将向其中添加元素,如:adreses.add(mail.getMail());但是您还没有初始化地址,比如:List addres=new ArrayList();它将抛出NullPointerException…好的,但如何设置值?其中:.map(Contact::getMail)@smok,.map(Contact::getMail)
等于.map(Contact->Contact.getMail())
,它会将邮件收集到列表中,您不需要设置值。好的,但如何设置值?其中:.map(Contact::getMail)@smok,.map(Contact::getMail)
等于.map(Contact->Contact.getMail())
,它将邮件收集到列表中,您不需要设置值。
List<String> adreses = getContacts(personID).stream().map(Contact::getMail).collect(Collectors.toList())