ByteBuffer na List ? Szybka konwersja.

Odpowiedz Nowy wątek
2008-08-16 01:45
schizo6
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,

Pozostało 580 znaków

2008-08-16 07:54
0

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

Pozostało 580 znaków

2008-08-16 10:27
schizo6
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;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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