Chương trình Java để kết hợp hai mảng

Trong chương trình này, bạn sẽ học cách nối hai mảng trong Java bằng cách sử dụng bản sao và không có mảng.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Mảng Java
  • Java cho từng vòng lặp

Ví dụ 1: Nối hai mảng bằng cách sử dụng mảng

 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)); ) )

Đầu ra

 (1, 2, 3, 4, 5, 6)

Trong chương trình trên, chúng ta có hai mảng số nguyên là array1 và array2.

Để kết hợp (nối) hai mảng, chúng tôi tìm độ dài của nó được lưu trữ trong aLen và bLen tương ứng. Sau đó, chúng ta tạo một kết quả mảng số nguyên mới với độ dài aLen + bLen.

Bây giờ, để kết hợp cả hai, chúng tôi sao chép từng phần tử trong cả hai mảng để tạo ra kết quả bằng cách sử dụng arraycopy()hàm.

Các arraycopy(array1, 0, result, 0, aLen)chức năng, trong thuật ngữ đơn giản, nói với chương trình để sao chép array1 bắt đầu từ chỉ số 0là kết quả của chỉ số 0để Alen.

Tương tự như vậy, for arraycopy(array2, 0, result, aLen, bLen)yêu cầu chương trình sao chép array2 bắt đầu từ chỉ mục 0sang resulttừ chỉ mục aLen sang bLen.

Ví dụ 2: Nối hai mảng mà không sử dụng mảng

 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)); ) )

Đầu ra

 (1, 2, 3, 4, 5, 6)

Trong chương trình trên, thay vì sử dụng arraycopy, chúng ta sao chép thủ công từng phần tử của cả hai mảng array1 và array2 để kết quả.

Chúng tôi lưu trữ tổng độ dài cần thiết cho kết quả, tức là array1.length + array2. length. Sau đó, chúng tôi tạo một kết quả mảng mới có độ dài.

Bây giờ, chúng ta sử dụng vòng lặp for-each để lặp qua từng phần tử của array1 và lưu trữ nó trong kết quả. Sau khi gán nó, chúng tôi tăng vị trí lên 1 pos++,.

Tương tự như vậy, chúng ta làm tương tự với array2 và lưu trữ từng phần tử trong kết quả bắt đầu từ vị trí sau array1.

thú vị bài viết...