所以我尝试搜索Stackoverflow并找不到有用的东西。如果有这样的链接,请指出它。
假设我在Java中使用类似的变量:
class Example {
public type a;
public Example next;
}
显然,我想将这个类用作列表,然后我可以使用对象变量在最后添加更多元素。
在迭代这些时,我的困惑就出现了。
假设我已经将class Example
的对象称为test,并在下一个变量上添加了一些元素。
在方法中使用此对象时,如果我使用以下是否有区别:
test = test.next;
或者如果我使用:
Example test2 = test;
test2 = test2.next
我认为这两个意思相同,是对同一个对象的引用,所以迭代一个也意味着迭代第二个。当我从方法返回时,该对象上的“指针”返回到我的起始对象。 这是对的吗?
现在我有一个问题,如果我想删除其中一个元素。
假设我之前写的是正确的,我不能只写test = test.next;
,因为一旦我退出方法,我所做的一切都会被“消除”。
如果我要删除“列表”中的某个元素,我应该如何处理此问题? 还有一件事;我不能使用LinkedLists或其他任何东西,这就是我应该如何完成我的任务。
答案 0 :(得分:2)
您正在实施非常标准的链表删除算法。这里有sample Google hit,但您可以自己搜索并关注任何内容。
您也可以实际使用Java LinkedList。
您也可以尝试用Java中的实际源代码阅读LinkedList的remove方法。
我还想指出你没有"使用像列表这样的类。"您只是实现了LinkedList,并选择调用您的类Example,而不是List或LinkedList或SinglyLinkedList。
答案 1 :(得分:0)
您正在寻找的是Java迭代器。请查看此tutorial以获取一些帮助。基本上,您应该在Java中创建一个类型化的集合,例如List<Example>
并使用该列表上的迭代器。 List
来自java.util
。