3

単純なグラフのコピーを作成する必要があります。

グラフ ジェネレーターの中にグラフ デュプリケーターが表示されず、UndirectedGraph はクローン メソッドを実装していません。

年、私は手でグラフをコピーすることができます。しかし、私はこれを1行でやりたいです。

4

2 に答える 2

2

UndirectedGraph はインターフェースです。ただし、ほとんどの具象サブクラス (SimpleGraph など) は、clone() メソッドを実装する AbstractBaseGraph を拡張します。

したがって、手元にある UndirectedGraph が AbstractBaseGraph から継承されていることが保証できる場合は、単純に AbstractBaseGraph にキャストして clone メソッドを呼び出します。

public void someMethod(UndirectedGraph g)
{
  // Do some stuff...

  ((AbstractBaseGraph)g).clone(); // <== Your 1-liner

  // Do some more stuff...
}

ただし、JavaDocによると、 clone() メソッドは浅いクローンを実行することに注意してください。したがって、グラフ インスタンスは複製されますが、その中の頂点とエッジは複製されません。

于 2013-04-04T19:59:33.310 に答える