3

私は Java プログラムを X10 に翻訳していますが、誰かが翻訳を手伝ってくれるかどうか疑問に思っていたいくつかの問題に遭遇しました。

翻訳しようとしている Java セグメントの 1 つを次に示します。

ArrayList<Posting>[] list = new ArrayList[this.V];
for (int k=0; k<this.V; ++k) {
    list[k] = new ArrayList<Posting>();
}

そして、これが私がX10で行ったことです:

var list:ArrayList[Posting]=new ArrayList[Posting](this.V);
for (var k:int=0; k<this.V; ++k) {
    list(k)=new ArrayList[Posting]();
}

エラーステートメントの混乱を生成している行は次のとおりです。

list(k)=new ArrayList[Posting]();

私が間違っていることについての提案とおそらく説明はありますか?

4

2 に答える 2

1

真実に同意した。list次のように定義する必要がありますRail[ArrayList[Posting]]

var list:Rail[ArrayList[Posting]]=new Rail[ArrayList[Posting]](this.V);

valまた、X10 は不変変数の型推論をサポートしているため、型宣言の代わりに使用varし、型宣言を完全に省略する方がよい場合がよくあります。

val list = new Rail[ArrayList[Posting]](this.V);
于 2013-04-18T06:48:27.137 に答える
1

これがあなたのために働くはずのコードです:

val list = new Rail[ArrayList[Posting]](this.V);
for (k in 1..(this.V)) {
  list(k)=new ArrayList[Posting]();
}

そして、あなたもできる

val list = new Rail[ArrayList[Posting]](this.V, (Long)=>new ArrayList[Temp]());

つまり、単一のステートメントを使用して、初期化された配列を作成します。

于 2014-02-11T13:05:38.627 に答える