首页 > 解决方案 > 尝试从两个现有数组创建一个二维数组

问题描述

我对java很陌生,我目前正在尝试在java中重新创建一些python代码。这是我的问题:

我有 2 个不同的变量:

    ArrayList <Double> x_loc= new ArrayList<>();
    ArrayList <Double> y_loc= new ArrayList<>();

它们都代表坐标。我的目标是现在用它们创建一个二维数组,这样我就可以拥有类似数组([[x1,y1],[x2,y2],...])的东西。

我考虑过创建一个新的 ArrayList,然后添加每个单独的项目:

ArrayList<Double[]> data_fin = new ArrayList<>(); 
data_fin.add(x_loc)

但是,这不起作用。我知道我可能正在做一些非常愚蠢的事情,但作为一个新手,我真的很感谢你的帮助。谢谢!

标签: javaarraysmultidimensional-array

解决方案


您必须遍历原始Lists 才能填充组合List

for (int i = 0; i < x_loc.size() && i < y_loc.size(); i++) {
    data_fin.add (new Double[]{x_loc.get(i),y_loc.get(i)});
}

也可以用Streams 来完成:

List<Double[]> data_fin = IntStream.range(0,x_loc.size())
                                   .mapToObj(i -> new Double[] {x_loc.get(i),y_loc.get(i)})
                                   .collect(Collectors.toList());

(这里我假设两个 inputList的大小相同)。


推荐阅读