Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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中的类型?_Java_Hashmap - Fatal编程技术网

为什么我不能用';长';Java中的类型?

为什么我不能用';长';Java中的类型?,java,hashmap,Java,Hashmap,有任何理由不允许以下情况吗 HashMap<long, long> x = new HashMap<>(); HashMap x=newhashmap(); 您正在使用原语重写为HashMap x=new HashMap()在Java中,具有泛型类型参数的类型(如HashMap)只接受从对象继承的类型。long不会从对象继承,所以不能将其与HashMap一起使用。但是,您可以使用Long,它是Long的盒装版本。对Long等基本类型使用标准集合并不是真正有效的 如果你需

有任何理由不允许以下情况吗

HashMap<long, long> x = new HashMap<>();
HashMap x=newhashmap();

您正在使用原语重写为
HashMap x=new HashMap()

在Java中,具有泛型类型参数的类型(如HashMap)只接受从对象继承的类型。long不会从对象继承,所以不能将其与HashMap一起使用。但是,您可以使用Long,它是Long的盒装版本。

对Long等基本类型使用标准集合并不是真正有效的


如果你需要最小化内存占用,并获得更好的性能,你应该考虑第三方集合库,比如

看看爪哇的自动装箱。这里,是的,这是C和java之间的区别之一。在Java中,不能将基元类型用于泛型类型参数。