3

我正在将一个 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]();

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

4

2 回答 2

1

同意实事求是。您需要定义listRail[ArrayList[Posting]]

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

此外,由于 X10 支持不可变变量的类型推断,通常最好使用val而不是var完全省略类型声明:

val list = new Rail[ArrayList[Posting]](this.V);
于 2013-04-18T06:48:27.137 回答
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]());

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

于 2014-02-11T13:05:38.627 回答