3次元の要素を1次元の配列に格納する

Axis1.1とDelphi7で3次元配列に互換性がないので別の方法を考えてみる。

ソースコード

/**
 * 3次元配列の要素を1次元配列に格納して返す。
 * @param multi 要素が[ページ][行][列]の並びで格納されている3次元配列
 * @return 3次元の要素を格納した1次元配列
 */
public static int[] toSingleDimension(int[][][] multi) {
    int pageCount = multi.length;
    int rowCount = multi[0].length;
    int columnCount = multi[0][0].length;
    int length = pageCount * rowCount * columnCount;
    int[] single = new int[length];

    for (int page = 0; page < pageCount; page++) {
        for (int row = 0; row < rowCount; row++) {
            for (int column = 0; column < columnCount; column++) {
                single[column + (columnCount * row) + (columnCount * rowCount * page)] = multi[page][row][column];
            }
        }
    }

    return single;
}
    

ダウンロード

配列を扱うユーティリティクラス

ArrayUtils.java

関連情報

Copyright © 2004, AfternoonTea
All rights reserved.