2

例として、このコンストラクターを取り上げます。

private final List<ArrayList<Integer>> adjList;
public Graph(int vertexCount) {
        adjList = new ArrayList<ArrayList<Integer>>(vertexCount);
        for (int i = 0; i < vertexCount; i++) {
            adjList.add(new ArrayList<Integer>());
        }
    }

これは、単に頂点を提供するだけの頂点のリストが必要な場合です。

   public List<Integer> adj(int vertex) {
        return adjList.get(vertex); 
    }

頂点にノードが接続されていない場合、戻り値はサイズ 0 のリストになります。次のような明示的なチェックを追加して Collections.Empty_List を返すことは利点がありますか: リスト サイズが 0 の場合Collections.Empty_List を返しますか?

4

2 に答える 2

1

その必要はありません。すでに空のリストがインスタンス化されています。

あなたができることは、return Collections.unmodifiableList(adjList.get(v))あなたのユーザーがGraph内部を変更できないようにすることです

于 2013-08-14T18:58:20.800 に答える