我脑子里有个屁,出于某种原因,我不知道如何编写一个参数为空的方法。
我这里有一个方法(空(
public void removeRepeat() {
}
这是一个链接列表,我想删除重复。我下面还有其他方法,我正在考虑使用它:
public boolean remove(Object element) {
Node<T> current = head;
if(isEmpty()) {
return false;
}
if(current.getValue() == element){
head = head.getNext();
size--;
return true;
}
while(current.getNext().getValue() != element) {
current = current.getNext();
if(current == null) {
return false;
}
}
if(current.getNext().getNext() == null) {
tail = current;
}
current.setNext(current.getNext().getNext());
size--;
return true;
}
我也有一个set方法等等,但我的问题通常是如果没有参数,如何编写方法。我只是创建一个新变量吗?我如何访问它希望我反转的列表?我正在考虑使用for循环来检查重复,然后删除重复元素,但我不确定如何构建for循环。for (int i=0; i< ???; i++)
从广义上讲,在Java中有四种主要方法可以访问方法中的变量:
- 提供变量作为参数:
public void removeRepeat(SomeObject obj)
{
// do something with obj
}
- 让变量成为成员(在您的第二个代码片段中,
head
似乎是这样(:
SomeObject obj = new SomeObject();
public void removeRepeat()
{
// do something with obj
}
- 局部声明变量,,即方法内部的:
public void removeRepeat()
{
SomeObject obj = new SomeObject();
// do something with obj
}
- 让它在某个地方静态可用:
// some other class
public class SomeClass
{
public static final Object obj = new SomeObject();
}
...
// then in your class:
public void removeRepeat()
{
SomeObject obj = SomeClass.obj;
// do something with obj
}
我建议你复习一些Java基础知识,它应该会澄清你对此可能存在的一些误解。
根据remove(Object element)
方法判断,您有一个包含head
和tail
字段以及size
字段的类。
如果要将一个新方法removeRepeat()
添加到同一个类中,则可以继续访问这些字段,就像在remove(Object)
方法中一样。例如,
public void removeRepeat() {
// Make a method-local copy of the class's "head" field.
Node<T> current = head;
// Iterate through the list here:
while (current != null) {
// do something
current = current.getNext();
}
etc...
}