我正在尝试创建一个方法,用于从单个链接列表中的包(集合)中删除元素。我目前的方法是没有正确删除东西。如果有重复,它应该只删除第一个。但它只是删除它不应该的东西。我会很感激一些反馈。代码如下。 (我有一个使用数组的版本。但我必须两种方式。)
LinkedBag.java http://pastebin.com/xqZ6Jw3i
BagTest.java http://pastebin.com/359h5A5m
答案 0 :(得分:1)
我注意到在你的remove()
方法中,为了遍历你的链表,你实际上改变了你的实例变量bag
,而显然没有做任何努力在最后将它重置为原始状态。所以说你试图删除一个不在链表中的元素。您是否发现您的方法按预期返回false
,但是所有元素都已被删除?
不要使用bag
来遍历列表。除了currentBag
局部变量之外,还要创建一个previousBag
局部变量。