2010-02-11 16 views
5

Java mnie zasmuca, ponieważ potrzebuje klas otoki dla ArrayList s. W jaki sposób mogę dodać byte[] do ArrayList<Byte[]>?Java: byte [] na Byte []

+7

Co jest nie tak z 'ArrayList '? To działa (jako lista tablic bajtowych []) Być może chodziło Ci o 'ArrayList ' z bajtu []? – Yishai

Odpowiedz

3

LOL myślał, że muszę wszystko owinąć. ArrayList<byte[]> działa. Dzięki Yishai.

3

Musisz zawijać wszelkie prymitywy, aby użyć ich w kontekście wymagającym obiektu. Ale bajt [] nie jest prymitywny. Jest to tablica bajtów, a tablica to obiekt.

Po prostu wyjaśnić: Czy naprawdę chcesz ArrayList z tablic bajtów, tj. Skutecznie dwuwymiarową tablicę? A może po prostu potrzebujesz ArrayList of bytes? W takim przypadku musisz zawijać bajty w bajtach, aby umieścić je w tablicy ArrayList.

3

tylko w celu innych poszukujących tego, jeśli masz Apache Commons na ścieżce klas, można zrobić coś jak poniżej, aby uzyskać Byte[] back (documentation]:

Byte[] result = ArrayUtils.toObject(byte[]); 
1

ArrayList działa tylko wtedy, gdy nie potrzebujesz wyników hashCode() i equals() na tej liście.