可能重複:
Creating a byte[] from a List<Byte>獲取的byte []從列表<Byte>
我有名單列表。如何從startIndex到endIndex id列表中獲取byte [](列表的子列表)?
可能重複:
Creating a byte[] from a List<Byte>獲取的byte []從列表<Byte>
我有名單列表。如何從startIndex到endIndex id列表中獲取byte [](列表的子列表)?
List<Byte> theList= new ArrayList<Byte>();
Byte[] your_bytes = theList.subList(startIndex,endIndex).toArray(new Byte[0]);
如果最後你需要byte
(原始)工作的話,我建議的Apache Commons Collections中toPrimitive utility
byte[] your_primitive_bytes = ArrayUtils.toPrimitive(your_bytes);
在大多數情況下,你當然可以用Byte
(對象)度日。
ArrayList<Byte> list = new ArrayList<Byte>();
ArrayList<Byte> subList = (ArrayList<Byte>) list.subList(fromIndex, toIndex); //(0,5)
Byte[] array = (Byte[]) subList.toArray();
好了,因爲原來的問題實際上請求包含一個字節一個子表[](不是字節[])這裏有雲:
List<Byte> byteList = .... some pre-populated list
int start = 5;
int end = 10;
byte[] bytes = new byte[end-start]; // OP explicitly asks for byte[] (unless it's a typo)
for (int i = start; i < end; i++) {
bytes[i-start] = byteList.get(i).byteValue();
}
如果您需要byte[]
:
byte[] byteArray = ArrayUtils.toPrimitive(list.subList(startIndex, endIndex).toArray(new Byte[0]));
你是指Byte []還是byte []? – Joel 2011-02-01 11:28:25
@Joel我不認爲這是重複的。這個問題只是關於將字節[]轉換爲字節[] ...這一個是關於(列表到數組)+子列表 – 2011-02-01 12:02:39