我遇到三个错误,指出令牌上的语法错误,(应改为
在线:
1)return (int)(this.cities.stream().mapToDouble(x - > {
2)int cityIndex = this.cities.indexOf(x);
3)>}).sum() + this.cities.get(citiesSize - 1).measureDistance(this.cities.get(0)));
任何建议?
import java.util.Arrays;
import java.util.Collections;
public class Route {
private ArrayList<City> cities = new ArrayList<City>();
public Route(ArrayList<City> cities){
this.cities.addAll(cities);
Collections.shuffle(this.cities);
}
public Route(Route route){ this.cities.addAll(route.cities);}
public ArrayList<City> getCities(){return cities;}
public double getTotalDistance(){
int citiesSize = this.cities.size();
int x;
return (int)(this.cities.stream().mapToDouble(x - > {
int cityIndex = this.cities.indexOf(x);
double returnValue = 0;
if (cityIndex < citiesSize - 1)returnValue = x.measureDistance(this.cities.get(cityIndex + 1));
return returnValue;
}).sum() + this.cities.get(citiesSize - 1).measureDistance(this.cities.get(0)));
}
public String getTotalStringDistance(){
String returnValue = String.format("%.2f",this.getTotalDistance());
if (returnValue.length() == 7) return " " +returnValue;
return returnValue;
}
public String toString(){ return Arrays.toString(cities.toArray());}
}
答案 0 :(得分:-1)
对于1)return (int)(this.cities.stream().mapToDouble(x - > {
----删除-和>之间的空格。
应该是return (int)(this.cities.stream().mapToDouble(x -> {
2)int cityIndex = this.cities.indexOf(x);
---因为该方法中已经使用x。尝试使用另一个变量
对于3--,您能不能提到错误?