我有MyClass
,它存储两个整数,我有一个Vector<MyClass>
被调用的myVector
.
现在,我这样做:
...
myVector.add(new MyClass(1,1));
for(MyClass m : myVector)
System.out.println(m);
System.out.println(myVector.size());
myVector.remove(new MyClass(1,1));
for(MyClass m : myVector)
System.out.println(m);
System.out.println(myVector.size());
...
这里的问题是对象没有被删除,正如我在打印 Vector 及其大小时看到的那样。我怎么能解决这个问题?
编辑:我可以看到它没有找到对象,我已经测试过contains()
可以确定。我需要的是按价值进行比较。如果我可以重载==
操作员,我可以做到,但我不知道如何解决这个问题。
编辑2:好的,equals()
会做我想做的。但我不确定在 hashCode 方法中放什么。
编辑 3:我可以使用 contains() 找到它,但删除不会删除它。
我可以用它来删除它:
int position = myVector.indexOf(new MyClass(1,1));
myVector.remove(position);
这与 remove(new MyClass(1,1) 相同,除了上面的代码有效而 remove() 无效。有什么想法吗?