为什么我不能用';长';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中,不能将基元类型用于泛型类型参数。