【发布时间】:2021-05-23 19:41:12
【问题描述】:
我在 SO 上找不到确切的解决方案。我有一个Crowd 类,它由一个Crowd 对象组成,它是一个People 类型的数组列表。 People 是一个具有String name, Double bankBalance, Integer numberOfCarsOwned 属性的类。
在我的人群类中,我有以下方法,我试图按以字母 P 开头的名称进行过滤,并返回一个 String 类型的数组列表:
public ArrayList<String> filterByLetterP(){
ArrayList<String> filteredNames = this.crowd.stream()
.filter(name -> name.getName().contains("P"));
return filteredNames;
}
我的错误是:
必填类型ArrayList<String> 提供Stream<People>
注意:我的解决方案必须使用流。如何更正我的解决方案以使其正常工作?
参考信息如下。
People 类定义:
public class People {
private String name;
private Double bankBalance;
private Integer numberOfCarsOwned;
public People(String name, Double bankBalance, Integer numberOfCarsOwned) {
this.name = name;
this.bankBalance = bankBalance;
this.numberOfCarsOwned = numberOfCarsOwned;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getBankBalance() {
return bankBalance;
}
public void setBankBalance(Double bankBalance) {
this.bankBalance = bankBalance;
}
public Integer getNumberOfCarsOwned() {
return numberOfCarsOwned;
}
public void setNumberOfCarsOwned(Integer numberOfCarsOwned) {
this.numberOfCarsOwned = numberOfCarsOwned;
}
}
Crowd类定义:
public class Crowd {
private ArrayList<People> crowd;
public Crowd() {
this.crowd = new ArrayList<>();
}
public ArrayList<People> getCrowd() {
return crowd;
}
public void setCrowd(ArrayList<People> crowd) {
this.crowd = crowd;
}
public void addPeopleToCrowd(People people){
this.crowd.add(people);
}
public ArrayList<String> filterByLetterP(){
ArrayList<String> filteredNames = this.crowd.stream()
.filter(name -> name.getName().contains("P"));
return filteredNames;
}
}
【问题讨论】:
标签: java arraylist java-stream