
Khi muốn copy 1 mảng byte trong Java ta dùng hàm này, nó sẽ trả về cho ta 1 mảng byte mới:
public static byte[] copyOfRange(byte[] original, int from, int to) {}
Hàm này cho phép ta copy theo kiểu range này ref [ )
Ví dụ 1:
byte[] pData = new byte[]{1,2,3,4,5};
byte[] new_data = Arrays.copyOfRange(pData, 0, 3);
Ví dụ này copy từ index = 0 đến index = 2 và kết quả là 1 mảng byte [1, 2, 3]
Ví dụ 2:
int offset = 10; Arrays.copyOfRange(pData, offset, offset + 12);
Ví dụ này cho phép ta copy 1 mảng byte từ index = 10 đến index = 21 từ mảng byte gốc pData. Ý đồ của ta là copy ra 12 bytes.
Dĩ nhiên mảng byte pData phải có kích thước lớn hơn hoặc bằng 23 bytes.
Ngoài ra chúng ta có thể dùng hàm này để copy từ mảng này sang mảng kia theo theo vị trí mong muốn:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
Hàm System.arraycopy giống memcpy trong C/C++ (đọc thêm)
Sự khác nhau chính của Arrays.copyOfRange và System.arraycopy là 1 hàm trả về 1 mảng còn hàm kia copy và set trực tiếp.
Các bài viết không xem thì tiếc:
- Siêu tổng hợp iOS code snippets – Objective C
- Làm việc với font trong Android
- Lưu ý khi porting C/C++ sang Java
- Little Endian Unsinged trong Java
- Hiểu về cách tổ chức file, bộ nhớ của app Android
- Gửi dữ liệu đến BLESerial3 bằng Bluetooth LE Android
- Lập trình với Recyclerview trong Android – Bài 2 | dotrinh.com
- Cách dùng AsyncTask trong Android
- Chuyển một đối tượng sang Json trong Android
- Lập trình với Recyclerview trong Android – Bài 3 | dotrinh.com
- Lập trình với Recyclerview trong Android – Bài 1 | dotrinh.com
- Thuật toán tìm kiếm nhị phân (Binary Search)
- Cung cấp giải pháp IoT thì có những công nghệ kết nối nào?
- Thuật toán tìm kiếm tuyến tính (Linear Search)
- Đọc file và ghi file vào bộ nhớ internal Android từ thư mục raw



1 Comment