Java LinkedList数组引用

时间:2014-04-06 22:41:35

标签: java arrays linked-list adt

所以我有一个简单的程序,它创建一个给定大小为n的LinkedList数组,列表中的每个值代表一个新的独立LinkedList数据结构。

public class Graph {

public final LinkedList[] graph;

public Graph(int n){
    graph = new LinkedList[n];  

    for (int i=0; i<n; i++){
        graph[i] = new LinkedList();
    }

}

public void addEdge(int x, int y){

    graph[x].addFirst(y);
    graph[y].addFirst(x);

}

但是,出于某种原因,当我使用两个int值调用addEdge()方法时,不是将它们添加到LinkedList中的特定被调用graph[],而是将它们添加到每个{ {1}}中的{1}}。

这里有什么问题?

编辑:*

LinkedList

这是我正在使用的LinkedList和Node Class:

graph[]

1 个答案:

答案 0 :(得分:1)

public static Node first;

这就是问题所在。您创建的每个LinkedList共享相同的Node,因此它们实际上都是相同的列表。

不要将static用于实例变量。