gpt4 book ai didi

java - 函数需要在 if、else if、else 时为 void? HashMap ,java

转载 作者:行者123 更新时间:2023-12-02 11:15:19 24 4
gpt4 key购买 nike

好吧,很奇怪。据我所知,以前没有遇到过这个。

好的,所以编译器告诉我以下方法由于某种原因应该是无效的:

 public static HashMap<String, ArrayList<FlightData>> mapper(ArrayList<String> lineBuffer) {

HashMap<String, ArrayList<FlightData>> mapdata = new HashMap<>(); //array list for Mapdata object

for (String flightData : lineBuffer) {
String[] str = flightData.split(",");
FlightData flight = new FlightData(str[0], str[1], str[2].toCharArray(), str[3].toCharArray(), new Date(Long.valueOf(str[4])), Long.valueOf(str[5]).longValue()); //creating the object
mapdata.get(flight.getFlightID()); //getting the flight data
if (mapdata.containsKey(flight.getFlightID())) { //checking if the data for the oject contains hash key Flightdata
mapdata.get(flight.getFlightID()).add(flight);
}
else if (mapdata.containsKey(flight.getFromID())) {
mapdata.get(flight.getFromID()).add(flight);
ArrayList<FlightData> noID2 = new ArrayList<>(); //creating an array for noID
noID2.add(flight);
mapdata.put(flight.getFlightID(), noID2);
}
else {
ArrayList<FlightData> noID = new ArrayList<>(); //creating an array for noID
noID.add(flight);
mapdata.put(flight.getFlightID(), noID);

// System.out.println(mapdata);

}

return mapdata;

}

这很奇怪,因为当我删除额外的 if (if else to just else) 时,它很好:
 public static HashMap<String, ArrayList<FlightData>> mapper(ArrayList<String> lineBuffer) {

HashMap<String, ArrayList<FlightData>> mapdata = new HashMap<>(); //array list for Mapdata object

for (String flightData : lineBuffer) {
String[] str = flightData.split(",");
FlightData flight = new FlightData(str[0], str[1], str[2].toCharArray(), str[3].toCharArray(), new Date(Long.valueOf(str[4])), Long.valueOf(str[5]).longValue()); //creating the object
mapdata.get(flight.getFlightID()); //getting the flight data
if (mapdata.containsKey(flight.getFlightID())) { //checking if the data for the oject contains hash key Flightdata
mapdata.get(flight.getFlightID()).add(flight);
} else {
ArrayList<FlightData> noID = new ArrayList<>(); //creating an array for noID
noID.add(flight);
mapdata.put(flight.getFlightID(), noID);
}
// System.out.println(mapdata);

}

return mapdata;

}

我得到以下信息:

screenshot of compiler correction suggestion

错误告诉我缺少返回语句/类型。因此无效的建议。任何想法为什么?

任何帮助都会很棒。

干杯,
格伦

最佳答案

是的,所以我是个白痴,没有发现我的 return 语句在我的 for 循环中……哇。

向所有发表评论的人干杯。

标记空间
阿尤什·古普塔
飞飞6

显然我是盲人。

干杯,伙计们。

格伦

关于java - 函数需要在 if、else if、else 时为 void? HashMap ,java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48970653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com