Как создать один массив из двух

235
08 февраля 2019, 03:10

Заданы массивы А (n) и В (m). Сформировать массив С (n + m), элементами которого являются n элементов массива A, за которыми следуют m элементов массива B. Можете посмотреть код, я просто не уверенна, что все правильно сделала.

В консоль выдает только 1 2 3 4.

public class six{
    public static void main(String[] args) {
        String[] A = {"1", "2"};
        String[] B = {"3", "4"};
        String[] C = new String[A.length + B.length];
        int f = 0;
        for (int i = 0; i < A.length; i++) {
            C[f] = A[i];
            f +=1;
        }
        for (int i = 0; i < B.length; i++) {
            C[f] = B[i];
            f +=1;
        }
        for (int i = 0; i < C.length; i++) {
            System.out.println(C[i]);
        }
    }
}
Answer 1

У вас задача связана с конкатенацией массивов. Проблема в том, что вы не можете прицепить один массив к другому или же расширить массив до требуемой длины. Потому, что длина массива фиксирована. Вам нужно создать новый массив и скопировать туда элементы массивов последовательно. Что вы и сделали, только зачем делать это вручную, такой код потом трудно использовать и модифицировать. Если можно использовать потоки из массивов, то эта задача решается так:

String[] C = Stream.concat(Arrays.stream(A), Arrays.stream(B))
                   .toArray(String[]::new);
Answer 2
public class six{
    public static void main(String[] args) {
        int[] A = {"1", "2"};
        int[] B = {"3", "4"};
        int[] C = [A.length + B.length];
        int f = 0;
        for (int i = 0; i < A.length; i++) {
            C[f] = C[f] + A[i];
            f +=1;
        }
        for (int i = 0; i < B.length; i++) {
             C[f] = C[f] + B[i];
            f +=1;
        }
        for (int i = 0; i < C.length; i++) {
            System.out.println(C[i]);
        }
    }
}
Answer 3

Могу предложить такой вариант:

String[] a = {"1", "2"};
String[] b = {"3", "4"};
String[] c = new String[a.length + b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);

Вывод:

System.out.println(Arrays.toString(c));

[1, 2, 3, 4]

READ ALSO
Пополнение баланса номера через API WebMoney

Пополнение баланса номера через API WebMoney

WebMoney предоставляет множество интерфейсов для разработчиковНо, к сожалению, я не смог найти подходящий мне

248
Неправильная генерация сертификата X.509

Неправильная генерация сертификата X.509

В проекте используется ЭП для подписания некоторых данных на формеПри тестировании локально на своем ПК (Windows) все происходит идеально: юзер...

250
Как в метод передать ссылку на объект?

Как в метод передать ссылку на объект?

У меня есть методЯ передаю в него название нового объекта data и его будущий номер num

401
Cannot load 64-bit SWT libraries on 32-bit JVM (Android Studio)

Cannot load 64-bit SWT libraries on 32-bit JVM (Android Studio)

При попытке запустить через консоль uiautomatorviewer получаю следующую ошибку:

510