将Arraylist <object>值转换为byte []

时间:2016-09-24 15:32:18

标签: java android arraylist

我试图在byte []中获取/转换Arraylist的值 下面是我的代码

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

这是我在这个arraylist中的对象的arraylist m以字节的形式存储图像的值

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);
}

我试图从arraylist中获取特定值并将其存储在byte []中 这就是我想要做的事情

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

我找不到将Object的Arraylist转换为byte []的完整答案 我知道Arraylist不支持原始数据类型(i-e byte)

2 个答案:

答案 0 :(得分:4)

您要找的是List byte[],就像这样:

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

然后,您可以使用add(E)方法将byte array简单地添加到List

imglists.add(bs.toByteArray());

然后,当您尝试实现时,您将能够使用方法get(int)byte array中的索引访问给定的List

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

答案 1 :(得分:0)

您想将ArrayList转换为byte []吗?或者对象为byte []?

我用这种方式编写,只需将ArrayList中的元素转换为byte [],就可以了!

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

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

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

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