English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 예외 처리

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java程序来连接两个数组

Java 예제 모든 것

在这个程序中,您将学习使用arraycopy和不使用arraycopy在Java中连接两个数组。

示例1:使用arraycopy连接两个数组

import java.util.Arrays;
public class Concat {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};
        int aLen = array1.length;
        int bLen = array2.length;
        int[] result = new int[aLen + bLen];
        System.arraycopy(array1, 0, result, 0, aLen);
        System.arraycopy(array2, 0, result, aLen, bLen);
        System.out.println(Arrays.toString(result));
    }
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

[1, 2, 3, 4, 5, 6]

在上面的程序中,我们有两个整数数组array1와 array2.

为了合并(连接)两个数组,我们将其长度分别存储在aLen和bLen中。然后,我们创建一个长度为aLen + bLen의 새 정수 배열 결과。

现在,为了将两者结合在一起,我们使用arraycopy()函数将两个数组中的每个元素都复制到结果。

函数arraycopy(array1, 0, result, 0, aLen)简单地告诉程序从索引0开始将array1复制到从索引0复制到aLen的结果。

同样,arraycopy(array2, 0, result, aLen, bLen)告诉程序从索引0开始将array2复制到结果,从索引aLen复制到bLen。

示例2:在不使用arraycopy的情况下连接两个数组

import java.util.Arrays;
public class Concat {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};
        int length = array1.length + array2.length;
        int[] result = new int[length];
        int pos = 0;
        for (int element : array1) {
            result[pos] = element;
            pos++;
        }
        for (int element : array2) {
            result[pos] = element;
            pos++;
        }
        System.out.println(Arrays.toString(result));
    }
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

[1, 2, 3, 4, 5, 6]

위의 프로그램에서 우리는 arraycopy를 사용하지 않고 수동으로 배열 array를 복사했습니다1와 array2의 각 요소를 result에 저장합니다.

result에 필요한 총 길이 length를 저장합니다. 즉, array1.length + array2. length를 사용합니다. 그런 다음, 새로운 길이의 배열을 생성합니다.

현재, 우리는 for-each 루프로 array를 순회합니다1의 각 요소를 결과에 저장합니다. 할당 후, 위치 pos를 증가시킵니다1، pos ++.

동일하게, 우리는 array에 대해2동일한 작업을 수행하고 array에서1result의 각 요소를 저장하기 시작하는 위치.

Java 예제 모든 것