【发布时间】:2022-01-16 03:07:42
【问题描述】:
/**
* Get all cities near current city in radius.
*
* @param cityName - city
* @param radius - radius in kilometers for search
* @throws IllegalArgumentException if city with cityName city doesn't exist.
*/
public List<String> getCitiesNear(String cityName, int radius) {
List<String> nearCities = new ArrayList<>();
List<Integer> distances = new ArrayList<>();
for (int i = 0; i < this.citiesNames().size(); i++) {
distances.add(this.getDistance(cityName, this.citiesNames().get(i)));
}
for (int i = 0; i < distances.size(); i++) {
if (distances.get(i) <= radius) {
if (!this.citiesNames().get(i).equals(cityName)) {
nearCities.add(this.citiesNames().get(i));
}
}
}
return nearCities;
}
方法 cityNames() 返回 List。城市名称。
方法“int getDistance(String srcCityName, String destCityName)”返回srcCityName和srcCityName之间的距离。
PS: 禁止在该类中使用循环、迭代器。只能使用接受谓词的流和方法。您不能在类中声明其他字段。
这是我的作业)
【问题讨论】:
-
你可以使用map和filter from stream api来完成这个作业。
标签: java java-stream