2013-03-31 3 views
-4

Я пытаюсь создать метод, который удаляет элемент из мешка (коллекции), который находится в отдельном списке. Мой текущий метод не устраняет все правильно. Если есть дубликат, он должен удалить только первый. Но это просто удаляет вещи, которые не предполагается. Я был бы признателен за некоторые отзывы. Код ниже. (У меня есть версия, используя массив. Но я должен сделать это в обоих направлениях.)Удаление элемента из связанного списка (Java)?

LinkedBag.java http://pastebin.com/xqZ6Jw3i

BagTest.java http://pastebin.com/359h5A5m

+2

1) Вы должны быть в состоянии найти это самостоятельно, используя отладчик. 2) Связи Pastbin перерываются через несколько дней, поэтому ваш вопрос будет бесполезен довольно скоро. 3) Если вы хотите просмотреть код, это не подходящее место. –

ответ

1

Я заметил, что в вашем методе remove(), чтобы итерации по вашему связанному списку, вы фактически изменяете свою переменную экземпляра bag, хотя, по-видимому, не прилагаете никаких усилий, чтобы сбросить ее в исходное состояние в конце. Поэтому скажите, что вы пытаетесь удалить элемент, которого нет в связанном списке. Вы находите, что ваш метод возвращает false, как и ожидалось, но что ВСЕ элементы были удалены?

Не используйте bag для перебора по списку. Сделайте локальную переменную currentBag в дополнение к локальной переменной previousBag.

Смежные вопросы