我想要存储一个基于键的值,该键由一组元素组成。类似于下面的例子。当然,我知道我的伪示例不起作用,因为对象的散列可能是每个新实例的唯一地址,而不管它的内容如何。
// in this pseudo-example this is my SET http://algs4.cs.princeton.edu/35applications/SET.java.html
// but the idea is that values are unique
HashMap<SET<Integer>, String> map = new HashMap<>
java中的HashSet把我弄糊涂了,当使用contains()时,它会查找hashcode()和equals()结果吗?但在这种情况下,它的行为并不正常。有时,如果您将此类代码放在大型项目中,则会出现问题。问题是为什么最后一条语句打印为FALSE?contains()在幕后做了什么?
class R
{
int count;
public R(int count)
{
this.count = count;
}
public String toString()
{
return "R(count att
假设您有一个类,您创建了一个HashSet,它可以存储这个类的实例。如果您尝试添加相等的实例,则集合中只保留一个实例,这是可以接受的。
但是,如果您在HashSet中有两个不同的实例,并且获取一个实例并使其成为另一个实例的精确副本(通过复制字段),则HashSet将包含两个重复的实例。
下面是演示这一点的代码:
public static void main(String[] args)
{
HashSet<GraphEdge> set = new HashSet<>();
GraphEdge edge1 = new Grap