我试图在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)
答案 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