Học Java, vì vậy hãy nhẹ nhàng làm ơn. Lý tưởng nhất là tôi cần phải tạo một mảng các byte sẽ trỏ đến một phần của một mảng lớn hơn:Trong Java: là nơi mà một cách để tạo một subarray sẽ trỏ đến một phần của một mảng lớn hơn?
byte[] big = new byte[1000];
// C-style code starts
load(file,big);
byte[100] sub = big + 200;
// C-style code ends
Tôi biết điều này là không thể trong Java và có hai vấn đề cần lưu ý và sẽ bao gồm:
Hoặc phần sao chép lớn vào phụ iterating qua lớn.
Hoặc writting lớp riêng mà sẽ mất một tham chiếu đến lớn + bù đắp + kích thước và thực hiện "subarray" thông qua phương pháp accessor sử dụng lớn như cấu trúc dữ liệu cơ bản thực tế.
Tác vụ tôi đang cố giải quyết là tải tệp vào bộ nhớ, sau đó truy cập chỉ đọc vào các bản ghi được lưu trữ với tệp thông qua lớp. Tốc độ là tối quan trọng, do đó lý tưởng tôi muốn tránh sao chép hoặc phương pháp accessor. Và kể từ khi tôi đang học Java, tôi muốn gắn bó với nó.
Bất kỳ lựa chọn thay thế nào khác mà tôi có? Vui lòng đặt câu hỏi nếu tôi không giải thích đủ về công việc.
Không nhất quán: byte [] sub = new byte [100]; dự trữ không gian cho 100 byte nhưng phân bổ phụ = lớn + 200; chỉ lưu trữ một con trỏ. –
sganslandt, đúng vậy. Đã chuyển sang mã kiểu C. –