2012-03-11 43 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]()); 

即使用单个语句来创建一个初始化数组。