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