将Java翻译成X10

时间:2012-03-11 22:02:49

标签: 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>();
}

这就是我在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]();

任何建议,也许是对我做错了什么的解释?

2 个答案:

答案 0 :(得分: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 :(得分: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]());

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