使用HashMap实现Java邻接列表

时间:2016-11-02 17:41:35

标签: java

我正在尝试创建一个邻接列表类。我试图用HashMap做到这一点。每个桶指向列表列表,最后一个列表的大小为3。 不幸的是,我还没有设法让它发挥作用。任何帮助,将不胜感激。 我的代码行出错了

  

uList.get(0)。新增(V); uList.get(1)。新增(能力);   uList.get(2)。新增(流动);

/* Adjacency list */
public class AdjacencyList
{
    Map< Integer, ArrayList<ArrayList<Integer>> > adjList;

    //Constructor
    public AdjacencyList(int V)
    {
        // 0 -> [ [v1,capacity1,flow1] , [v2,capacity2,flow2] , ...]
        adjList = new HashMap< Integer, ArrayList<ArrayList<Integer> >>();
        for(int i = 1; i<V+1; i++)
        {
            adjList.put(i, new ArrayList<ArrayList<Integer>>());
        }

    }

    // method for adding an edge (->node) with its 
    // - current capacity (aka remaining flow)
    // - current flow
    public void addEdge(int u, int v, int capacity, int flow)
    {
        ArrayList<ArrayList<Integer>> uList = new ArrayList<ArrayList<Integer>>();
        System.out.println("ul: " + uList);
        uList.get(0).add(v); uList.get(1).add(capacity); uList.get(2).add(flow);
        adjList.put(u, uList);

    }

    // method for retrieving a list of children to u (u->v1,v2,v3,...)
    public ArrayList<ArrayList<Integer>> getEdge(int u)
    {
        return adjList.get(u);
    }

}

0 个答案:

没有答案