CodeGym /Blog Java /Ngẫu nhiên /Phương thức Java System.arraycopy()

Phương thức Java System.arraycopy()

Xuất bản trong nhóm

Phương thức Java System.arraycopy() là gì?

Phương thức java.lang.System.arraycopy() sao chép một mảng nguồn, tại một vị trí bắt đầu cụ thể, tới một đích tại một chỉ mục nhất định.
Phương thức này thuộc lớp java.lang.System . Nó sao chép nội dung của một mảng con có độ dài xác định từ một mảng nguồn đã cho sang một mảng khác được gọi là mảng đích . Mảng nguồn được gọi là src và mảng đích là dest . Số phần tử được đưa ra bởi đối số len .

Khai báo phương thức Java System.arraycopy()

Khai báo phương thức cho phương thức java.lang.System.arraycopy() trong lớp java.lang như sau:

public static void arraycopy(Object src, int srcIndex, Object dest, int destIndex, int len)

Thông số

Sau đây là các tham số của phương thức arraycopy :
  1. src : Nó là mảng nguồn.

  2. srcIndex : Đây là chỉ mục bắt đầu của mảng nguồn.

  3. dest : Nó là mảng đích.

  4. destIndex : Đây là chỉ mục bắt đầu của mảng đích.

  5. len : Là số phần tử cần sao chép từ mảng nguồn sang mảng đích.

chức năng

Phương thức arraycopy sao chép dữ liệu từ src , bắt đầu từ các phần tử srcIndex cho đến srcIndex +( len - 1) vào mảng đích tại destIndex cho đến destIndex + ( len - 1).

Giá trị trả về

Phương thức arraycopy có kiểu trả về void có nghĩa là nó không trả về bất cứ thứ gì.

Ví dụ


public class Example {

    public static void main(String[] args) {

        String[] src = { "Monday","Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
        String[] dest = { "January", "February", "March", "April", "May", "June", "July", "August"};
  
        int srcIndex = 2;
        int destIndex = 3;
        int len = 2;
        
        //print number of elements that need to be copied 
        //from the source to the destination array  
        System.out.println("len : " + len);
        
        //print source index
        System.out.println("srcIndex : " + srcIndex);
  
        //print elements of the source array
        System.out.print("src : ");
        for (int i = 0; i < src.length; i++)
            System.out.print(src[i] + " ");
        System.out.println("");
  
        //print destination index
        System.out.println("destIndex : " + destIndex); 
        
        //print elements of the destination array
        System.out.print("dest : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
        System.out.println("");
                
        // Use of arraycopy() method
        System.arraycopy(src, srcIndex, dest, destIndex, len); 
        // this method copies the 'len' no of elements 
        // from the src array to the dest array using the srcIndex
        // and destIndex as reference points in both the arrays
        
                        
        // Print elements of destination after  
        System.out.print("final destination array : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
    }
}

đầu ra

len : 2 srcIndex : 2 src : Thứ Hai Thứ Ba Thứ Tư Thứ Năm Thứ Sáu Thứ Bảy Chủ Nhật chỉ số đích : 3 đích : Tháng Giêng Tháng Hai Tháng Ba Tháng Tư Tháng Năm Tháng Sáu Tháng Bảy Tháng Tám mảng đích cuối cùng: Tháng Giêng Tháng Hai Tháng Ba Thứ Tư Thứ Năm Tháng Sáu Tháng Bảy Tháng Tám

Ví dụ thay đổi tham số


// Example of changing parameters
         srcIndex = 4;
         destIndex = 5;
         len = 1;

đầu ra

len : 1 srcIndex : 4 src : Thứ Hai Thứ Ba Thứ Tư Thứ Năm Thứ Sáu Thứ Bảy Chủ Nhật chỉ số đích : 5 đích : Tháng Giêng Tháng Hai Tháng Ba Tháng Tư Tháng Năm Tháng Sáu Tháng Bảy Tháng Tám mảng đích cuối cùng: Tháng Giêng Tháng Hai Tháng Ba Tháng Tư Tháng Năm Thứ Sáu Tháng Bảy Tháng Tám

Giải trình

Trong đoạn mã trên, chúng tôi đã xác định hai mảng src[]dest[] . Sau đó, chúng tôi đã xác định src Indexdest Index để xác định vị trí tham chiếu cho cả hai mảng. Trong ví dụ đầu tiên , phương thức System.arraycopy sao chép các phần tử từ mảng nguồn src[] , bắt đầu từ chỉ mục 2 và kết thúc ở chỉ mục 3 (vì len = 2), đến mảng đích, bắt đầu từ chỉ mục 3. Sau đó, nó xuất ra mảng đích cuối cùng sau khi sao chép các phần tử. Trong ví dụ thứ 2 , phương thức System.arraycopy sao chép 1 phần tử (vì len = 1) từ mảng nguồnsrc[] , bắt đầu từ chỉ mục 4, đến mảng đích, bắt đầu từ chỉ mục 5 và cũng xuất ra mảng đích cuối cùng sau khi sao chép các phần tử.

Phần kết luận

Đến cuối bài này, chúng tôi hy vọng bạn đã làm quen với phương thức java.lang.System.arraycopy trong Java. Hãy tiếp tục luyện tập để hiểu sâu hơn về khái niệm này. Cho đến lúc đó, hãy tiếp tục phát triển và tiếp tục tỏa sáng!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION