2016-09-24 81 views
6

ja próbuję dostać/przekonwertować wartość ArrayList w byte [] poniżej jest mój kodKonwersja ArrayList wartość <Object> do byte []

final ArrayList<Object> imglists = new ArrayList<Object>(); 

to mój ArrayList obiektów w tym ArrayList m przechowywania wartości obrazów w postaci bajtów

for (int i=0; i<mPlaylistVideos.size();i++) { 
    holder.mThumbnailImage.buildDrawingCache(); 
    Bitmap bitmap= holder.mThumbnailImage.getDrawingCache(); 
    ByteArrayOutputStream bs = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bs); 
    byte[] rough = bs.toByteArray(); 
    imglists.add(i,rough); 
} 

ja próbuję dostać konkretną wartość z ArrayList i zapisać, że w byte [] to, co starałem się zrobić

byte[] value=imglists.get(2); 

nie mogłem znaleźć żadnego pełną odpowiedź do konwertowania ArrayList z obiektu do byte [] wiem ArrayList nie obsługuje prymitywny typ danych (czyli bajt)

+0

Chcesz ArrayLIst of bajt []? –

+0

Dlaczego nie zdefiniować ArrayList zamiast ArrayList Loc

+0

Obiekt java jest serializowalny. możesz przekonwertować obiekt na String, a następnie przekonwertować go na bajt []. – AmmY

Odpowiedz

4

Co szukasz jest List z byte[], coś takiego:

List<byte[]> imglists = new ArrayList<>(); 

Następnie można po prostu dodaj swój byte array do swojej List stosując metodę add(E) jak obok:

imglists.add(bs.toByteArray()); 

Wtedy będziesz w stanie uzyskać dostęp do danej byte array ze swojego indeksu w List stosując metodę get(int) jak starają się osiągnąć:

// Get the 3th element of my list 
byte[] value = imglists.get(2); 
+0

Pozwól mi spróbować tego –

+0

Dzięki Bro to właśnie szukałem Dzięki Jeszcze raz –

0

chcesz przekonwertować ArrayList do byte []? lub Object to byte []?

Napisałem w ten sposób, po prostu przekształcić element w ArrayList w bajt [], to działa!

List<Object> objects = new ArrayList<Object>(); 

    objects.add("HelloWorld".getBytes()); 

    byte[] bytes = (byte[]) objects.get(0); 

    System.out.println(new String(bytes)); // HelloWorld