Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Java 哈希映射中没有Arraylist值_Java_Hashmap - Fatal编程技术网

Java 哈希映射中没有Arraylist值

Java 哈希映射中没有Arraylist值,java,hashmap,Java,Hashmap,我有一个HashMap,如下所示: public static HashMap submitService(HashMap inputMap) throws Exception { //code.... ArrayList<String> allIdsList = (ArrayList<String>) inputMap.get("Result_List"); // System.out.println("Resu

我有一个
HashMap
,如下所示:

public static HashMap submitService(HashMap inputMap) throws Exception
    {
        //code....

        ArrayList<String> allIdsList = (ArrayList<String>) inputMap.get("Result_List");
        // System.out.println("Result List: " + allIdsList); prints the arraylist (e.g. [2, 21, 6, 3]

        for(int i=0;i<allIdsList.size();i++)
            {
                System.out.println(" values: " + (String)allIdsList.get(i));
            }
    }

非常感谢他人的帮助。

Replace:publicstaticsubmitservice(HashMap>inputMap)抛出异常

查看异常,可以确定传递的参数没有字符串的arraylist。看起来可能是arraylist。

尝试以下操作:

public static HashMap<String,ArrayList<String>> submitService(HashMap<String,ArrayList<String>> inputMap) throws Exception
{
    //code....

    ArrayList<String> allIdsList = inputMap.get("Result_List");
            for(int i=0;i<allIdsList.size();i++)
        {
            System.out.println(" values: " + allIdsList.get(i));
        }
}
公共静态HashMap submitService(HashMap inputMap)引发异常
{
//代码。。。。
ArrayList allidlist=inputMap.get(“结果列表”);

对于(int i=0;i确保HashMap的类型是
HashMap

inputMap
来自哪里?从外观上看,它的值不是
ArrayList
类型,而是类似于
ArrayList
甚至
ArrayList
的类型。问题似乎不在您发布的代码片段的范围内

由于您在这个方法中使用原始类型,编译器不会抱怨(尽管它应该警告您使用原始类型)。但是,VM将在强制转换失败的地方抛出
ClassCastException
,这就是您看到的


尝试通过只接受
HashMap
作为
inputMap
来加强签名。这样,您就可以摆脱那些糟糕的强制转换,因为您现在得到了编译时类型检查。在最好的情况下,这将为编译器提供足够的信息,指出您在哪里使用错误类型的
inputMap
调用此方法。然后,只需遵循编译器的说明,您就可以轻松地修复错误。如果这不起作用,您可能在调用中也使用了原始类型,您需要深入挖掘堆栈跟踪来修复这些错误。

为什么要强制转换为字符串?您使用
初始化了arraylist。因此,get方法应该eturn一个字符串,而不需要强制转换!hashmap也是如此。试着用
hashmap inputMap
@sniew初始化它,你是对的。这更像是一个概念问题。String.valueOf(allidlist.get(i))对我有效…:)即使它有效,想想你在做什么(即使只是供以后参考)。获取arraylist中的一个元素,填充字符串,您需要将其转换为字符串才能工作,因为它似乎包含长字符串而不是字符串…这里可能有问题,可能是方法调用中的参数有问题。请注意,这不会影响到a…稍后:)HashMap,编辑器有问题。
public static HashMap<String,ArrayList<String>> submitService(HashMap<String,ArrayList<String>> inputMap) throws Exception
{
    //code....

    ArrayList<String> allIdsList = inputMap.get("Result_List");
            for(int i=0;i<allIdsList.size();i++)
        {
            System.out.println(" values: " + allIdsList.get(i));
        }
}