2012-03-11 42 views
3

我正在將java程序翻譯成x10,並碰到幾個問題,我想知道是否有人可以幫我翻譯。 這裏是我試圖翻譯的一個Java片段。將Java翻譯爲x10

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](); 

任何建議,也許什麼我一個解釋米做錯了嗎?

+0

是什麼讓你覺得你做錯了什麼?是否有編譯器錯誤或運行時錯誤消息可以列出? – maerics 2012-03-27 05:15:15

+1

我不知道你是否注意到了這一點,但是'ArrayList [] list = new ArrayList [this.V];'是'ArrayList' **(可怕的Java代碼btw)的**數組。我不知道X10,但在網上瀏覽一下後,它看起來並不像你翻譯得挺對的...... – trutheality 2012-03-27 05:32:54

回答

1

同意trutheality。您需要定義list,就像這樣Rail[ArrayList[Posting]]

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]()); 

即使用單個語句來創建一個初始化數組。