当前位置:  开发笔记 > 编程语言 > 正文

在Java中使用任意对象作为Map键的任何缺点?

如何解决《在Java中使用任意对象作为Map键的任何缺点?》经验,为你挑选了2个好方法。

我的应用程序中有两种对象,其中一种对象只有一种对应的对象.

跟踪这种关系的明显选择是Map,就像HashMap一样.但不知何故,我很怀疑.我可以在Map中使用一个对象作为键,传递它,将它放在另一个集合中,并随时从Map中检索它的伙伴吗?

创建一个对象后,我传来的只是一个标识符,对吧?所以可能没有问题.如果我序列化和反序列化密钥怎么办?

还有其他警告吗?我应该使用其他东西来关联对象,就像我自己生成的数字一样吗?



1> Joachim Saue..:

    关键需要贯彻.equals().hashCode()正确

    密钥不能以任何方式更改,以便.hashCode()在将密钥用作密钥时更改其值

    理想情况下,任何用作a中键的对象HashMap都应该是不可变的.这将自动确保2.始终保持为真.

    当它们用作键和/或值时,可能会保留可能以其他方式进行GC的对象.



2> Aaron Maenpa..:

我的应用程序中有两种对象,其中一种对象只有一种对应的对象.

这听起来像是一个有关系,因此可以使用一个简单的属性来实现.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有