在java中的地图中,哪些类型的数据类型可以用作键?可以使用双倍吗?字符串怎么样?
答案 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对象的警告是,除非重写equal
和hashcode
方法,否则相等性基于引用,这可能不是所需的行为。 (所以你可能会得到两个条目,你只能指望一个。)
答案 3 :(得分:0)
对于密钥,您可以使用数据集唯一的任何Object
。您无法使用int
或double
,但可以使用Integer
或Double
。请注意,一个键只能有一个值,因此需要一个唯一的对象。如果您添加相同的密钥两次,则第二个值将存储在Map
答案 4 :(得分:0)
你必须使用一个物体
如果你想使用double,你可以使用Double包装类
你不能使用原始数据类型如int或long或double如果你想使用一个你可以寻找代表它的包装类
String是okey,因为它是一个Class
答案 5 :(得分:0)
不允许使用原始数据类型,更好的是Wrapper类将数据存储在地图中。 而且,除非你覆盖你的equal和hashcode方法,否则使用map并没有多大用处。