我无法理解如何将linkdlist传递给将该列表显示为堆栈的方法。我知道我没有指定列表的类型,但我的导师说,这对此目的无关紧要。但我还在学习,所以我不确定我是否正确地将链表发送到方法中。
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
答案 0 :(得分:1)
这是正确的。在java中,对象通过引用传递(基本类型除外),因此您将能够在传递给methodTwo的列表上执行所有操作。
请参阅这篇文章以获得解释
Is Java "pass-by-reference" or "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>();
答案 1 :(得分:1)
您对该方法的调用是正确的。方法本身就是问题所在。您需要指定传递给方法的对象类型。
public LinkedList<String> methodTwo(LinkedList<String> aList){
...
}
您还需要在有角度的括号中指定LinkedList
的类型,如上所示。这包括在传递列表之前创建列表。
LinkedList<String> aList = new LinkedList<>();
第二对有角度的支架可以是空的,如上所示。这是Java 7中引入的快捷方式。