将List转换为2d数组然后返回 - java

时间:2017-04-26 18:39:11

标签: java arrays list type-conversion

我正在尝试将List转换为2d数组,然后在对2d数组执行某些操作之后,我想将其转换回初始顺序中的List。我一直在为这个项目付出很多努力,现在我完全不知道我错过了什么,但是最后一个方法的结果根本不符合初始列表。

我用于将List转换为2d数组的方法如下:

public static Map<String, long[][]> convertListToMatrix(List<YUV> yuvList, int width, int height) {
    Map<String, long[][]> imageMatrix = new HashMap<String, long[][]>();
    long[][] yMatrix = new long[height][width];
    long[][] uMatrix = new long[height][width];
    long[][] vMatrix = new long[height][width];
    for(int i = 0; i < height; i++){
        for(int j = 0; j < width; j++){
            YUV yuvPixel = yuvList.get((j * height) + i);
            yMatrix[i][j] = yuvPixel.getY();
            uMatrix[i][j] = yuvPixel.getU();
            vMatrix[i][j] = yuvPixel.getV();
        }
    }
    imageMatrix.put("y", yMatrix);
    imageMatrix.put("u", uMatrix);
    imageMatrix.put("v", vMatrix);
    return imageMatrix;
}

对于要列出的矩阵,我使用此:

public static List<YUV> convertMatrixToYUVList(long[][] yMatrix, long[][] uMatrix, long[][] vMatrix, int width, int height) {
    List<YUV> yuvList = new ArrayList<YUV>();
    for(int i = 0; i < height; i++)
        for(int j = 0; j < width; j++)
            yuvList.add(new YUV(yMatrix[i][j], uMatrix[i][j], vMatrix[i][j]));
    return yuvList;
}

任何人都可以看到我在这方面的错误吗?

0 个答案:

没有答案