2016-09-23 2 views
1

я следующее:Как добавить элементы в String [] []?

String[][] content = { 
      {"c","d", "2"}, 
      {"e","f", "3"}, 
      {"g","h", "4"}, 
      {"i","j", "5"}} ; 

Что я могу сделать, чтобы добавить некоторые 1x3 элементы к уже существующим?

+1

2D массивы фиксированной длины. Вы не можете добавлять к ним элементы. Лучшим вариантом (который остается с 2D-массивами) является создание нового массива большего размера, который может содержать текущие значения и новые значения. Затем добавьте к нему все значения. –

+0

Яш Капур прав. Если этот метод слишком громоздкий, вы, вероятно, лучше переключитесь на 'ArrayList '. – Daneel

+0

@uksz Пожалуйста, проверьте мой ответ –

ответ

2
public static void main(String[] args) { 
     String[][] content = { 
       {"c","d", "2"}, 
       {"e","f", "3"}, 
       {"g","h", "4"}, 
       {"i","j", "5"}}; 

     String[][] newContent = {{"p","a", "3"}}; 

     System.out.println(Arrays.deepToString(append(content, newContent))); 
    } 

    public static String[][] append(String[][] a, String[][] b) { 
     String[][] result = new String[a.length + b.length][]; 
     System.arraycopy(a, 0, result, 0, a.length); 
     System.arraycopy(b, 0, result, a.length, b.length); 
     return result; 
    } 

Выходной

[[c, d, 2], [e, f, 3], [g, h, 4], [i, j, 5], [p, a, 3]] 

Другой вход

String[][] content = { 
       {"c","d", "2"}, 
       {"S","2"}, 
       {"i","j", "5"},{"p","1"}}; 

String[][] newContent = {{"p","a", "3"},{"k","3"}}; 

Выход

[[c, d, 2], [S, 2], [i, j, 5], [p, 1], [p, a, 3], [k, 3]] 
+0

@uksz, если мой ответ будет полезен, пожалуйста, воздержитесь и примите мой ответ, спасибо заранее! –

0

Это громоздко, включая создание копии всего массива, следовательно, не что-то делать регулярно:

String[][] content = { 
     {"c","d", "2"}, 
     {"e","f", "3"}, 
     {"g","h", "4"}, 
     {"i","j", "5"}}; 
content = Arrays.copyOf(content, content.length + 1); 
content[content.length - 1] = new String[] { "k", "l", "6" }; 

Однако вы можете работать со списком:

List<String[]> list = new ArrayList<>(); 
Collections.addAll(list, content); 
list.add(new String[] { "k", "l", "6" }); 

операции, как:

String[] row = list.remove(2); 
list.get(1)[3]; // Getting 
list.add(0, row); // Adding at an index 
+0

Привет, сэр, пожалуйста, проверьте мой ответ, который очень сорт и сладкий :) –

+0

@ParthSolanki nice; вам не нужны такие вещи, как импорт и класс;) –

+0

Хорошо, спасибо за совет. Я уточню свой ответ. –

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