如何在Java中传递链表?

时间:2015-10-27 18:16:33

标签: java arrays linked-list

我无法理解如何将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

2 个答案:

答案 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中引入的快捷方式。