У меня есть 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());
...
Проблема здесь в том, что объект не удаляется, как я вижу, когда печатаю Вектор и его размер. Как я могу это исправить?
Редактировать: Я вижу, что он не находит объект, и я проверил с contains()
, чтобы убедиться. Что мне нужно, это сравнить его по значению. Если бы я мог перегрузить оператор ==
, я мог бы это сделать, но я понятия не имею, как это исправить.
Редактировать 2: Хорошо, equals()
сделает то, что я хочу. Но я не уверен, что поместить в метод hashCode.
Редактировать 3: Я могу найти его с помощью функции Вектор (), но удаление не удаляет его.
Я могу использовать это, чтобы удалить его, хотя:
int position = myVector.indexOf(new MyClass(1,1));
myVector.remove(position);
Что аналогично удалению (новый MyClass (1,1), за исключением того, что приведенный выше код работает, а удаление () - нет.