2015-02-17 2 views
0

Я хочу разместить 1-мерный массив внутри массива 2d с помощью java. С помощью метода, который я вызываю, я передаю список, из которого я собираю данные, а также 2-й массив, в который я хочу передать информацию. После создания набора строк я рассею предложение на 2 места персонажей в shingleSet. Из shingleSet я должен преобразовать строки в массив, сортировать данные, а затем сохранить отсортированный массив в массив 2d. Проблема, с которой я сталкиваюсь, заключается в том, что я могу загрузить массив, но я могу загружать его только локально. Должен ли я вернуть массив 2d из метода?Как заполнить массив 2d массивом 1d?

private static void sentenceToShingles(int n, String[][] stringArray, List list){ 
    int i, j; 
    String e; 
    String [] newShingle; 
    int counter = 0; 
    stringArray = new String [n][]; 
    for(Object o: list){ 
     //for every sentence create a new hashset 
     Set<String> shingleSet = new HashSet(); 
     e = (String) o; 
     i=0; 
     while((i+2) < e.length()){ 
      for(j=0;j<2;j++){ 
       shingleSet.add(e.substring(i, i+2)); 
      } 
      i++;  
     }  

     //add to array and sort ?RETURNING? 
     newShingle = shingleSet.toArray(new String[shingleSet.size()]); 
     Arrays.sort(newShingle); 

     //?? How can I save newShingle into 2d array?? 

     //print shingle sorted shingle array 
     for(j=0; j<newShingle.length; j++){ 
      System.out.print(newShingle[j] + " "); 
     } 
     System.out.println(); 
    }   
    System.out.println();    
} 
+0

Этот ответ должен соответствовать p: [Answer1] (http://stackoverflow.com/questions/5134555/how-to-convert-a-1d-array-to-2d-array) – vianna77

ответ

0

Чтобы вернуть массив из метода изменения сигнатуру метода от private static void к private static String[][] добавить оператор возврата в конце кода: return stringArray;

Update

Чтобы заполнить 2D массив, который необходимо прокручивать по каждой строке и столбцу:

for(int row = 0; row < targetArray.length; row++) { 
    for(int col = 0; col < targetArray[row].length; col++) { 
     targetArray[row][col] = sourceArray[row]; 
    } 
} 
+0

Я знаю, что мне пришлось бы изменить префикс метод, но мой главный вопрос: как поместить массив newShingle внутри 2d stringArray? –

+0

Вы хотите, чтобы ваш выходной массив выглядел как [[000] [111] [222] [333]] Но если наборы были уложены вертикально. –

+0

Мне нужно, чтобы они выглядели как [[set1] [set2] [set3]] каждый набор - это массив предложений, разделенных на 2 набора символов –

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