我很难理解如何将链接列表传递到显示该列表作为堆栈的方法中。我知道我没有指定列表的类型,但我的导师说这对这个目的无关紧要。但我仍在学习,所以我不确定我是否将linkedlist正确地传递到方法中。
import java.util.LinkedList ;
import java.util.ListIterator;
public class UseStacksAndQueues{
public static void main(String[] args) {
StacksAndQueues sQ = new StacksAndQueues();
String [] days = {"mon","tue","wed","thur","fri", "sat","sun"};
LinkedList aList = new LinkedList();
LinkedList newList = new LinkedList();
//load array of string objects into linked list
aList = sQ.methodOne(days);
//display linked list as a stack
sQ.methodTwo(aLits);
的方法。
//display a linked list as a stack
public LinkedList methodTwo(aList){
for(int i = aList.size; i <= 0; i--)
{
System.out.println(aList.get(i));
}
}//end method two
您对该方法的调用是正确的。方法本身就是问题所在。你需要指定传递给你的方法的对象的类型。
public LinkedList<String> methodTwo(LinkedList<String> aList){
...
}
您还需要在尖括号中指定LinkedList
的类型,如上所示。这包括当你在传递列表之前创建列表。
LinkedList<String> aList = new LinkedList<>();
第二对尖括号可以为空,如上所示。
这是正确的。在java中,对象是通过引用传递的(除了基本类型),所以你可以在传递给methodTwo的列表上执行所有的操作。
请参考这篇文章的解释
是Java "pass-by-reference"或"pass-by-value" ?
话虽如此,您没有任何类型与您的List对象相关联,因此您需要指定它。
所以像
public void methodTwo(LinkedList<String> aList){
for(int i = aList.size; i <= 0; i--)
{
System.out.println(aList.get(i));
}
}//end
我有返回类型为void,因为这是所有需要的,如果你只需要显示目的的methodTwo
,你还需要声明为
LinkedList<String> aList = new ArrayList<String>();