将JavaScript数组转换为Java数组插入

时间:2017-10-05 11:06:00

标签: javascript java

我在Javascript中有这个:

var population = [];
for(i=0; i < size; i++){
    population[i] = functionWhichReturnsArrays();
}

包含不同索引中的多个数组的单维数组 - 这是我想要的而不是2D数组。

如何将其转换为Java?

3 个答案:

答案 0 :(得分:1)

这让您了解如何在Java中处理它(代码可以编写得更好,但这很容易理解):

public class Pop {

public static void main(String[] args) {
    new Pop().build(10);
}

private void build(int size) {
    String[][] population = new String[size][];
    for (int i = 0; i < size; i++) {
        population[i] = functionWhichReturnsArrays();
    }

    for (int a = 0; a < population.length; a++) {
        for (int b = 0; b < population[a].length; b++) {
            System.out.print(population[a][b] + " / ");
        }
        System.out.println();
    }
}

private String[] functionWhichReturnsArrays() {
    String[] strs = new String[2];
    strs[0] = "zero";
    strs[1] = "one";
    return strs;
}

}

结果将是10行:

zero / one / 
zero / one / 
...
zero / one / 

答案 1 :(得分:0)

<强> TL;博士

使用ArrayList。

<强>答案

Java提供了大量可供选择的数据结构,内置Collections。 决定使用哪一个高度依赖于特定用例的性质。 通常它是灵活性和性能之间的权衡。

从您提供的稀疏描述中我假设您的 对数据结构的要求或多或少如下

  • 不知道或不关心元素的数量
  • 保持元素顺序的数据结构
  • 需要通过索引访问元素

虽然后两者是由Java数组填充的,但第一个不是因为数组具有固定的大小。 除非有更具体的要求,否则我建议使用ArrayList

作为一个例子,我在somethingThatReturnsAList()中创建随机数和随机长度的列表。 因为你可以在这里使用除Numbers之外的其他值类型。 此外,应该可以为每个列表条目使用完全不同的值类型。

您要求的列表列表是在最后的main方法中创建的。

printThat()只打印列表中每个索引的数字列表的内容 在StringBuilder的帮助下列表。

import java.util.ArrayList;
import java.util.List;

public class ListTest {

  public static List<Number> somethingThatReturnsAList() {
    int          count;
    int          value;
    List<Number> result;

    // Random number of elements.
    count  = (int) (Math.random() * 10);
    result = new ArrayList<Number>(count);

    for (int i = 0; i < count; ++i) {
      // Random value.
      value = (int) (Math.random() * 10);
      result.add(value);
    }

    return result;
  }

  public static void printThat(List<List<Number>> listOfLists) {
    StringBuilder bldr;
    List<Number>  subList;

    bldr = new StringBuilder();

    bldr.append("The contents:\n");

    for (int i = 0; i < listOfLists.size(); ++i) {

      // Top list index.
      bldr.append(i).append(": ");
      subList = listOfLists.get(i);

      // List sub list values.
      for (int j = 0; j < subList.size(); ++j) {
        if (j > 0) {
          bldr.append(", ");
        }
        bldr.append(subList.get(j));
      }

      System.out.println(bldr.toString());

      bldr.setLength(0);
    }
  }

  public static void main(String[] args) {
    int                 size;
    List                subList;
    List<List<Integer>> listOfLists;

    size        = 5;

    // Create that list of lists
    listOfLists = new ArrayList<List<Integer>>(5);
    for (int i = 0; i < size; ++i) {
      subList = somethingThatReturnsAList();
      listOfLists.add(subList);
    }

    // Print that list of lists
    printThat(listOfLists);
  }
}

这打印如下:

The contents:
0: 5, 1, 2
1: 
2: 4, 2, 9, 3, 0, 7, 6
3: 0, 1, 5, 7, 6, 5, 1, 4, 5
4: 7

答案 2 :(得分:0)

// var population = [];
ArrayList<TYPE_RETURNED_FROM_FUNTION> population = new ArrayList<>();

for (int i = 0; i < size; i++) {
    // adds at the end of the array Liste; wich is i
    population.add(functionWhichReturnsArrays());
}