Увеличить массив на n раз

349
30 октября 2017, 21:35

Всем привет. Только недавно начать осваивать Java. В меня такой вопрос. Как увеличить массив строк?

Например, есть массив String [] mas = {“a”,”b”, “c”,”d”}, и есть переменная int i, Надо в зависимости от i увеличить массив. Например, если i = 3, то массив должен увеличится на 3 массива mas и стать String [] mas1 = {“a”, ”b”, “c”, ”d”, “a”, ”b”, “c”, ”d”, “a”, ”b”, “c”, ”d”}.

Answer 1

Для этого лучше использовать Динамические структуры.

Но если нужно то:

String[] mas1 = new String[mas.length*i];
for(int k=0; k < mas1.length; k+=mas.length){
   for(int j=0; j < mas.length; j++){
      mas1[j+k] = mas[j];
   }
}
Answer 2

Вот сделал через System.arraycopy.

public static String []combineString1(String[] second, int i){

  String [] arr = new String[second.length];
  int j=0;
 if (i==0)
 {
 System.out.println("Массив пустой");
 return null;
  }
 String [] arr3 = new String[second.length * i];
 System.arraycopy(second, 0, arr3, 0, second.length);   
 for(int k=1; k<i; k++){          
  if (i>j){
  j++;
      System.arraycopy(second, 0, arr3, arr.length, second.length);           
      arr = new String[second.length + arr.length];
  }
 }
 System.out.println("concatenated String array : " + Arrays.toString(arr3));
 return arr3;
              }

Строго не судите. Учусь.

READ ALSO
Приведение параметризованных типов

Приведение параметризованных типов

В сервлете необходимо получить инстанс DAO который обернут в AtomicReference, но при приведении типов компилятор волнуется и пишет:

323
JavaFX объявление @FXML объектов

JavaFX объявление @FXML объектов

Есть ли такой макрос, который автоматически генерировал в коде все объекты из filefxml?

189
Переопределить метод bindView в SimpleCursorAdapter

Переопределить метод bindView в SimpleCursorAdapter

Здравствуйте! Делаю кастомный SimpleCursorAdapter, наследуюсь от данного класса, переопределяю bindView(), и не понимаю почему в наследнике недоступны...

399