2015-05-02 4 views
0

Например, 2-мерный массив для 3-мерного массива. Можно ли использовать массив? Если нет, какой класс я должен использовать для достижения этого?Измените размеры массива во время выполнения в java

EDIT: размер массива определяется пользователем во время выполнения.

+5

Не мог бы вы дать некоторые подробности? – SpiderPig

+1

предоставить более подробную информацию с помощью проверенного кода. –

+0

Массив объявляется как 2-мерный массив, и я хочу изменить массив на трехмерный массив. –

ответ

1

Вы не можете изменить длину или размерность массива, но вы можете создать новый массив с различным количеством измерений и скопировать содержимое старого массива в него.

Небольшого пример

int[] initialArray = new int[]{1,2,3}; 
    System.out.println(initialArray[0] + " " + initialArray[1] + " "+ initialArray[2]); 
    int[][] newArray = new int[initialArray.length][3]; 
    for (int i=0;i<initialArray.length;i++){ 
     newArray[i][0] = initialArray[i]; 
    } 
    System.out.println(newArray[0][0] + " " + newArray[1][0] + " "+ newArray[2][0]); 
+0

Как насчет использования другого класса, такого как ArrayList? –

+0

Вопрос в том, чего вы хотите достичь? Является ли производительность важной или вы просто хотите хранить ценности? –

+0

Это нормально. благодаря –

2

попробовать это,

int[][][] convertinto3d(int[][] d2, int size) { 
     int[][][] dimention = new int[size][d2.length][d2[0].length]; 
     for(int a=0; a< size; a++) { 
     for(int i=0; i<d2.length; i++) { 

       dimention[a][i] = d2[i]; 

      } 


     } 

     return dimention; 

    } 
Смежные вопросы