2012-03-11 10 views
3

私はJavaプログラムをx10に翻訳しています。誰かが私の翻訳を手助けできるかどうか疑問に思っていたいくつかの問題にぶつかってきました。 私は翻訳しようとしている1つのJavaセグメントです。Javaをx10に翻訳する

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

、ここでは、私はラインがエラーステートメントの混乱を生成する

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

任意の提案と多分私は「何の説明ですthatsのX10

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

にやったものです間違ってる?

+0

何が間違っていると思いますか?リストできるコンパイラエラーまたはランタイムエラーメッセージがありますか? – maerics

+1

あなたがこれに気づいたのかどうかわかりませんが、 'ArrayList [] list = new ArrayList [this.V];は' ArrayList's **(ひどいJavaコードbtw)の**配列です。私はx10を知らないのですが、ちょっとしたオンライン閲覧後、あなたはそれをかなり正しく翻訳したように見えません... – trutheality

答えて

1

truthealityと同意します。あなたはRail[ArrayList[Posting]]のようなものとしてlistを定義する必要があります。

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

、X10は、それがval代わりのvarを使用し、完全に型宣言を省略することが多い方が良いでしょう、不変の変数の型推論をサポートしていますよう:

val list = new Rail[ArrayList[Posting]](this.V); 
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]()); 

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

関連する問題