我们可以在HashMap <K,V>中为K分配哪些类型?

Mah*_*ran 0 java hashmap

我们可以指定什么类型KHashMap<K,V>?它只是数字类型(int,float)还是我们可以分配用户定义的对象?

Joa*_*uer 10

您可以使用任何类型,只要它具有理智equals()hashCode()实现.

严格来说:您可以使用任何引用类型,但如果类型没有这些方法的合理实现,它将无法按预期工作.

请注意,您不能使用原始类型(int,float,...),但可以使用它们的包装类型,而不是(Integer,Float,...).这是因为泛型只能处理引用类型.


Mat*_*hew 6

您可以使用用户定义的对象,但最好在这些类中明确定义hashCodeequals方法.

您不能使用intfloat因为它们是不是从Object超类派生的基本类型(它提供了hashCode()和的默认实现 equals()).如果确实需要使用整数或浮点数,则需要使用它们的对象包装类IntegerFloat