如何将 java 中的 queue<double[]> 转换为 double[][]?

How to convert queue<double[]> to double[][] in java?

我正在尝试使用 java 8 流将 queue<double[]> 转换为 double[][]。 有很多文献展示了一种以多种方式转换 queue<double> to double[] 的方法,但我未能将 double[] 转换为 double[][]

如何实现上面的问题?

使用toArray()

public static void main(String[] args) {
    Queue<double[]> q = new LinkedList<>();
    q.add(new double[]{1d, 2d, 3d, 9d, 7d});
    q.add(new double[]{4d, 5d, 6d});

    double[][] arr = q.toArray(new double[0][]);
    System.out.println(Arrays.deepToString(arr));
}

输出:

[[1.0, 2.0, 3.0, 9.0, 7.0], [4.0, 5.0, 6.0]]

您可以使用流,但这不是必需的。

double[][] arr = q.stream().toArray(double[][]::new);

你可以使用这个方法queue.toArray(new Double[0][0]);
Be careful.Do 不使用非参数重载方法 queue.toArray()。因为它不能转换为 Double[][]Obejct[].

例如:

LinkedBlockingQueue<Double[]> linkedBlockingQueue = new LinkedBlockingQueue<>();
        linkedBlockingQueue.put(new Double[]{1.1, 1.2});
        linkedBlockingQueue.put(new Double[]{2.1, 2.2});
        Double[][] doubleTwoDimensionArray = linkedBlockingQueue.toArray(new Double[0][0]);

The new Double[0][0] only be used to appoint the type of conversion.