Java - 在地图中用作键的数据类型

时间:2011-09-11 03:28:52

标签: java maps key

在java中的地图中,哪些类型的数据类型可以用作键?可以使用双倍吗?字符串怎么样?

6 个答案:

答案 0 :(得分:4)

检查API,因为根据特定地图,密钥的允许类型可能存在限制。此外,您只能使用引用类型,但不能使用基本类型。所以double不起作用,但Double很好。最后,密钥最好不应该是可变的,因为这会导致异常行为。

答案 1 :(得分:2)

您可以使用任何对象类型。 但是为了获得正确的行为,类型必须正确实现hashCode()和equals()函数。

因此,如果您想使用double,则应使用Double,因为装箱和拆箱,您实际上可以将double值传递给add()等函数。

答案 2 :(得分:1)

doubles无效,因为它们是原始类型,也就是说,您无法定义地图Map<double,String>。但是,您可以定义Map<Double,String>,然后对put方法使用double值(感谢自动装箱)。

对于地图中的abitary对象的警告是,除非重写equalhashcode方法,否则相等性基于引用,这可能不是所需的行为。 (所以你可能会得到两个条目,你只能指望一个。)

答案 3 :(得分:0)

对于密钥,您可以使用数据集唯一的任何Object。您无法使用intdouble,但可以使用IntegerDouble。请注意,一个键只能有一个值,因此需要一个唯一的对象。如果您添加相同的密钥两次,则第二个值将存储在Map

答案 4 :(得分:0)

你必须使用一个物体
如果你想使用double,你可以使用Double包装类 你不能使用原始数据类型如int或long或double如果你想使用一个你可以寻找代表它的包装类

String是okey,因为它是一个Class

答案 5 :(得分:0)

不允许使用原始数据类型,更好的是Wrapper类将数据存储在地图中。 而且,除非你覆盖你的equal和hashcode方法,否则使用map并没有多大用处。