Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数需要使用if,else if,else无效?哈希映射,java_Java_If Statement_Compiler Errors_Void_Return Type - Fatal编程技术网

函数需要使用if,else if,else无效?哈希映射,java

函数需要使用if,else if,else无效?哈希映射,java,java,if-statement,compiler-errors,void,return-type,Java,If Statement,Compiler Errors,Void,Return Type,好的,很奇怪。从我的记忆中,我从来没有遇到过这个 好的,编译器告诉我,由于某种原因,以下方法应该是无效的: public static HashMap<String, ArrayList<FlightData>> mapper(ArrayList<String> lineBuffer) { HashMap<String, ArrayList<FlightData>> mapdata = new HashMap<>

好的,很奇怪。从我的记忆中,我从来没有遇到过这个

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

 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;

    }
公共静态哈希映射器(ArrayList lineBuffer){
HashMap mapdata=new HashMap();//mapdata对象的数组列表
用于(字符串flightData:lineBuffer){
字符串[]str=flightData.split(“,”);
FlightData flight=new FlightData(str[0],str[1],str[2].tocharray(),str[3].tocharray(),新日期(Long.valueOf(str[4])),Long.valueOf(str[5]).longValue();//创建对象
mapdata.get(flight.getFlightID());//获取航班数据
if(mapdata.containsKey(flight.getFlightID()){//检查项目的数据是否包含哈希键Flightdata
mapdata.get(flight.getFlightID()).add(flight);
} 
else if(mapdata.containsKey(flight.getFromID())){
mapdata.get(flight.getFromID()).add(flight);
ArrayList noID2=新建ArrayList();//为noID创建数组
noID2.添加(航班);
mapdata.put(flight.getFlightID(),noID2);
}
否则{
ArrayList noID=new ArrayList();//为noID创建数组
noID.add(航班);
mapdata.put(flight.getFlightID(),noID);
//System.out.println(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;

}
公共静态哈希映射器(ArrayList lineBuffer){
HashMap mapdata=new HashMap();//mapdata对象的数组列表
用于(字符串flightData:lineBuffer){
字符串[]str=flightData.split(“,”);
FlightData flight=new FlightData(str[0],str[1],str[2].tocharray(),str[3].tocharray(),新日期(Long.valueOf(str[4])),Long.valueOf(str[5]).longValue();//创建对象
mapdata.get(flight.getFlightID());//获取航班数据
if(mapdata.containsKey(flight.getFlightID()){//检查项目的数据是否包含哈希键Flightdata
mapdata.get(flight.getFlightID()).add(flight);
}否则{
ArrayList noID=new ArrayList();//为noID创建数组
noID.add(航班);
mapdata.put(flight.getFlightID(),noID);
}
//System.out.println(mapdata);
}
返回地图数据;
}
我得到以下信息:

错误是告诉我缺少返回语句/类型。因此建议无效。你知道为什么吗

任何帮助都会很好

干杯,
格伦

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

为所有发表评论并作出回应的人干杯

标记空间 阿尤什·古普塔 ifly6

显然我是瞎子

干杯,伙计们


Glenn

你的大括号显然不平衡。(“显然”是指我看了代码并看到了它。请看。)你为什么在for循环中返回?因为你的返回语句在for循环中哈哈哈,天哪。谢谢你们。我是个白痴……不敢相信我错过了,哇。