import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

class TesteArray {
    public static void main(String[] args) {
        String[] arrayA = {"A0", "A1", "A2", "A3"};
        String[] arrayB = {"B0", "B1", "B2"};

        // Primeira forma.
        String[] arrayC1 = new String[arrayA.length + arrayB.length];
        for (int i = 0; i < arrayA.length; i++) {
            arrayC1[i] = arrayA[i];
        }
        for (int i = 0; i < arrayB.length; i++) {
            arrayC1[i + arrayA.length] = arrayB[i];
        }
        System.out.println(Arrays.toString(arrayC1));

        // Segunda forma.
        String[] arrayC2 = new String[arrayA.length + arrayB.length];
        System.arraycopy(arrayA, 0, arrayC2, 0, arrayA.length);
        System.arraycopy(arrayB, 0, arrayC2, arrayA.length, arrayB.length);
        System.out.println(Arrays.toString(arrayC2));

        // Terceira forma.
        List<String> lista = new ArrayList<>();
        lista.addAll(Arrays.asList(arrayA));
        lista.addAll(Arrays.asList(arrayB));
        String[] arrayC3 = lista.toArray(new String[0]);
        System.out.println(Arrays.toString(arrayC3));

        // Quarta forma.
        String[] arrayC4 = Stream.concat(Stream.of(arrayA), Stream.of(arrayB)).toArray(String[]::new);
        System.out.println(Arrays.toString(arrayC4));
    }
}
