2016-10-16 3 views
0

Я использую этот код, чтобы создать определенное количество массивов и заполнить их с определенными номерами:Союз нескольких массивов

public void CreateVars() { 
    System.out.println("Enter the numbers of variables: "); 
    int i = s.nextInt(); 
    int[][] var = new int[i][]; 
    for (int j = 0; j < i; j++) { 
     System.out.println("Enter the number of values: "); 
     int p = s.nextInt(); 
     System.out.println("Enter the numbers: "); 
     var[j] = new int[p]; 
     for (int q = 0; q < p; q++) { 
      int n = s.nextInt(); 
      var[j][q] = n; 
     } 
    } 
} 

Как я могу использовать созданные массивы и сделать союз, напр. Объединение B union C, так как всегда существует другое количество массивов.

Заранее спасибо

+0

что ваш желаемый результат? один одномерный массив со всеми числами? –

+0

@TimothyTruckle Да. Если я делаю объединение всех массивов, я хочу, чтобы один массив отображал объединение. – Michael

+0

массив может _определять значения_, он не может _display values_. –

ответ

0
  1. изменить способ вернуть созданный массив.
  2. создать второй метод, который принимает 2-мерный массив в качестве параметра и возвращает 1-мерный массив. Это будет в союз, как я покажу позже
  3. использование Arrays.toString() для отображения содержимого массивов с помощью System.out.println()

в новом методе создать переменную для 1-dimensionl целевого массива. затем цикл по первому измерению параметра:

for(int[] subArray : parameterArray) 

в этом цикле создать новый временный 1-мерный переменный массив с размером текущего размера целевых переменным плюс размером текущего subArray.

int[] tempArray = Arrays.copyOf(targetArray,targetArray.length+subArray.length]); 

повторить и передать текущее значение в соответствующее положение в массиве temp.

когда закончил внутренний магазин петли tempArray в TargetArray

targetArray = tempArray;