有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

x10语言将Java转换为x10

我正在将一个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) 个答案

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

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

  2. # 2 楼答案

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