将Java转换为X10

将Java转换为X10,java,x10-language,Java,X10 Language,我正在将一个Java程序翻译成X10,遇到了几个问题,我想知道是否有人能帮我翻译 下面是我试图翻译的一个Java片段: ArrayList<Posting>[] list = new ArrayList[this.V]; for (int k=0; k<this.V; ++k) { list[k] = new ArrayList<Posting>(); } 有没有关于我做错了什么的建议和解释?同意真实性。您需要将list定义为类似于Rail[ArrayLi

我正在将一个Java程序翻译成X10,遇到了几个问题,我想知道是否有人能帮我翻译

下面是我试图翻译的一个Java片段:

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

有没有关于我做错了什么的建议和解释?

同意真实性。您需要将
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);

以下是适用于您的代码:

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

i、 e.使用单个语句创建初始化数组

是什么让你觉得自己做错了?您是否可以列出编译器错误或运行时错误消息?我不知道您是否注意到了这一点,但是
ArrayList[]list=new ArrayList[this.V]
ArrayList
s(可怕的Java代码顺便说一句)的数组。我不知道x10,但在网上浏览了一段时间后,看起来你的翻译不太正确。。。
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]());