2015-03-03 3 views
-1

Предположат, у меня есть два-dimenstional массив строк со следующей строкой:Создать двумерный массив строк из существующих, без особой «строки»

table[0][0] = "Tom"; 
table[0][1] = "Baker"; 
table[0][2] = "TimeLord"; 

У меня есть вызов, чтобы удалить определенную строку из массива где пользователь вводит любой элемент из строки. Фактическое двухмерное. массив, который я читал из набора результатов. Я должен сделать это без использования ArrayLists и без использования каких-либо внешних библиотек/api.

Как это сделать? (Эффективность здесь не имеет значения)

+0

Создайте новый массив с одной меньшей строкой, чем входной массив, и скопируйте остальные строки из входного массива. – Eran

+0

Будет ли это работать, если для аргументации указанная строка - строка 5/100? –

+0

Конечно. Вам нужно будет скопировать первые 4 строки в новый массив, пропустить пятый и затем скопировать оставшиеся 95 строк. – Eran

ответ

1

Было бы проще, если бы вы согласились с объяснением Java двумерного массива.

из Java Documentation

В языке программирования Java, многомерный массив является массивом , компонентами которого являются сами массивы.

Так вы должны удалить конкретную «строку», вы просто удаляете массив в этом положении. , а затем соответствующим образом изменить массив.

За этим последует использование System.arraycopy, которое затем выполнит операцию копирования и удалит требуемую строку. то есть:

 int[][] tester={{1,2},{3,4},{5,6},{7,8}}; 
     int row=2; 
     System.out.println(tester.length); 
     System.arraycopy(tester, row+1, tester, row, tester.length-row-1); 

Надеюсь, это то, что вы хотели.

EDIT: Последние 2 строки будут копией друг друга. Вам все равно придется удалить последний.

int[][] tester={{1,2},{3,4},{5,6},{7,8}}; 
    int row=2; 
    int[][] testerCopy=new int[tester.length-1][tester[0].length]; 
    System.out.println(tester.length); 
    System.arraycopy(tester, row+1, tester, row, tester.length-row-1); 
    System.arraycopy(tester, 0, testerCopy, 0, testerCopy.length); 
    System.out.println(Arrays.toString(testerCopy[0])); 
    System.out.println(Arrays.toString(testerCopy[1])); 
    System.out.println(Arrays.toString(testerCopy[2])); 
    System.out.println(testerCopy.length); 
Смежные вопросы