2012-01-01 39 views
10

Làm thế nào tôi có thể khai báo một mảng các mảng byte với kích thước giới hạn cho mảng? Đây là những gì tôi đã suy nghĩ nhưng nó không hoạt động và tôi không thể tìm thấy bất cứ điều gì.Khai báo mảng Mảng Byte trong Java

private Integer number =10000; 
private byte[] data[]; 
data = new byte[][number]; 

Trả lời

13

Điều gì đó tương tự?

private byte[][] data; // This is idiomatic Java 

data = new byte[number][]; 

Điều này tạo ra một mảng các mảng. Tuy nhiên, không có mảng phụ nào tồn tại. Bạn có thể tạo chúng như vậy:

data[0] = new byte[some_other_number]; 
data[1] = new byte[yet_another_number]; 
... 

(hoặc trong một vòng lặp rõ ràng).

Ngoài ra, nếu tất cả họ đang cùng độ dài, bạn có thể làm toàn bộ điều trong một hit:

data = new byte[number][some_other_number]; 
+1

Có. Chính xác. Chỉ cần làm rõ, điều đó có nghĩa là tôi sẽ có các mảng byte "số", mỗi mảng có kích thước không xác định? – gtdevel

+2

@gtdevel: Trong đoạn mã đầu tiên đó, bạn sẽ có một mảng có độ dài 'số'. Mỗi phần tử của mảng đó là tham chiếu đến một mảng byte và được khởi tạo thành 'null'. tức là 'dữ liệu [0] == null' là đúng. –

+0

Cảm ơn, điều đó trả lời câu hỏi của tôi một cách hoàn hảo. – gtdevel

2

có thể bạn cần một 2-d mảng

private byte[][] data = new byte[10][number]; 

khai báo 10 mảng byte mỗi kích thước số

+1

Và nếu tôi để trống phần "số", điều đó có nghĩa là kích thước có thể thay đổi theo từng byte không? – gtdevel