
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
- Little Endian Unsinged trong Java
- Làm việc với font trong Android
- Lưu ý khi porting C/C++ sang 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
- Cách dùng AsyncTask trong Android
- Thuật toán tìm kiếm nhị phân (Binary Search)
- “Các câu lệnh git thông dụng” cực cần thiết cho developer
- 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
- Chuyển một đối tượng sang Json trong Android
- Copy file vào điện thoại Android từ macOS 100% ez
- Lập trình với Recyclerview trong Android – Bài 1 | dotrinh.com
- 7 lời khuyên của Sam Altman để thành công



1 Comment