ByteBuffer na List ? Szybka konwersja.

0

Cześć mam taki problem, chcę przerobić ByteBuffer na np. ArrayList<Byte>.Jedyną drogę, bardzo czasochłonna znalazłem taką:

ByeBuffer bbuf;

byte b[] = bbuf.array();

ArrayList<Byte> al = new ArrayList<Byte>();

for (int i=0; i< b.length; i++) al.add(b[i]);

Jednak jak widać jest to bardzo czasochłonne przy dużym rozmiarze. Myślałem nad użyciem funkcji:
Arrays.toList - jednak wtedy musiał bym mieć tablicę b[] jako tablice obiektów czyli Byte[]b, jednak nie mogę tak zrobić bo funkcjia array() z ByteBuffer zwraca mi byte [] :(

Po prostu już nie wiem jak to można rozgryźć żeby bylo szybko:
ByteBuffer na List i List na ByteBuffer, bez żmudnego kopiowania bajtu po bajcie w pętli.

Z góry dzięki,

0

Metoda z Array.toList powinna zaskoczyć. Masz przecież autoboxing w javie i konwersje obiekt>prymityw>obiekt w tle.

0
Koziołek napisał(a)

Metoda z Array.toList powinna zaskoczyć. Masz przecież autoboxing w javie i konwersje obiekt>prymityw>obiekt w tle.</quote

Niestety nie da się, tak samo jak nie zrobisz casta

byte b[];

(Byte[]) b;

z tablicy prymitywów nie da się zrobić ładnej tabli obiektów bez fora... owszem w przeciwną stronę zrobisz np.

Byte b[];

(byte[]) b;

1 użytkowników online, w tym zalogowanych: 0, gości: 1