【问题标题】:Convert Arraylist<Object> value in to byte[]将 Arraylist<Object> 值转换为 byte[]
【发布时间】:2016-09-24 15:32:18
【问题描述】:

我正在尝试获取/转换字节 [] 中 Arraylist 的值 下面是我的代码

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

这是我在这个数组列表中的对象数组列表 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);

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

【问题讨论】:

  • 你想要 ArrayLIst of byte[]?
  • 为什么不定义 ArrayList 而不是 ArrayList
  • Java 对象是可序列化的。您可以将对象转换为字符串,然后将其转换为字节[]。
  • @DeendayalGarg nop 我不想要字节数组列表的数组列表不支持字节[]。我只想将 Arraylist 值放入我的问题中提到的字节 []
  • @AmmY 转换成字符串很好,但是当我将它转换回 byte[] 值时不匹配

标签: java android arraylist


【解决方案1】:

您正在寻找的是Listbyte[],类似这样:

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

然后您可以使用add(E) 方法将您的byte array 添加到您的List,如下所示:

imglists.add(bs.toByteArray());

然后,您将能够使用get(int) 方法从List 中的索引访问给定的byte array,就像您尝试实现的那样:

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

【讨论】:

  • 让我试试这个
  • 谢谢兄弟,这就是我一直在寻找的东西,再次感谢
【解决方案2】:

您想将 ArrayList 转换为 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

【讨论】:

    猜你喜欢
    • 2014-05-09
    • 2011-10-15
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多