這是最好的方法目前我使用類似下面什麼是轉換列表<Byte>列出<Integer>
List<Byte> bytes = new ArrayList<Byte>();
List<Object> integers = Arrays.asList(bytes.toArray());
然後需要被強制轉換爲整數整數裏面的每個對象轉換的最佳途徑。有什麼其他方式可以實現這一目標嗎?
這是最好的方法目前我使用類似下面什麼是轉換列表<Byte>列出<Integer>
List<Byte> bytes = new ArrayList<Byte>();
List<Object> integers = Arrays.asList(bytes.toArray());
然後需要被強制轉換爲整數整數裏面的每個對象轉換的最佳途徑。有什麼其他方式可以實現這一目標嗎?
與標準的JDK,這裏是如何做到這一點
List<Byte> bytes = new ArrayList<Byte>();
// [...] Fill the bytes list somehow
List<Integer> integers = new ArrayList<Integer>();
for (Byte b : bytes) {
integers.add(b == null ? null : b.intValue());
}
如果你確定,你沒有任何null
值bytes
:
for (byte b : bytes) {
integers.add((int) b);
}
'for(byte b:bytes)integers.add((int)b)'也可以工作,看起來像OP當前正在做的事情。 – 2012-08-16 11:27:59
@MarkoTopolnik:你說的對,但假設不允許有'nulls' – 2012-08-16 11:28:41
@MarkoTopolnik能不能拋出NPE? – assylias 2012-08-16 11:28:46
如果谷歌的番石榴可用你的項目:
// assume listofBytes is of type List<Byte>
List<Integer> listOfIntegers = Ints.asList(Ints.toArray(listOfBytes));
你不能爲'Integer'類型'Byte'所以你的代碼可能是什麼確實是序列unbox - 轉換框。任何其他方式來執行此操作仍然會涉及顯式循環或第三方庫。 – 2012-08-16 11:26:43
您可以手動遍歷字節列表,投射對象並將它們添加到int列表 – Paranaix 2012-08-16 11:27:25
'asList'只會創建列表的副本,而不會更改列表的內容。 – SJuan76 2012-08-16 11:28:41