public class Main {
public static void main(String[] args) {
byte[] a=new byte[3];
List<Byte> c=new ArrayList<Byte>();
c.addAll(Arrays.asList(a));
//The method addAll(Collection<? extends Byte>) in the type List<Byte>
//is not applicable for the arguments (List<byte[]>)
Collections.addAll(c, a);
//The method addAll(Collection<? super T>, T...) in the type Collections
//is not applicable for the arguments (List<Byte>, byte[])
}
}
最后两行给出编译错误。
为了解决这个问题,首先我从数组讨论中读取了这个Create ArrayList。我尝试了此解决方案,但是它不起作用。这里解释了如何在Java中将数组转换为列表,为什么它不起作用,但不是解决方案。
“源数组是字节的原始数组,而不是字节对象”是正确的,我希望存在更多的美丽解决方案,然后迭代并转换每个元素。
使用标准Java不可能在基本类型上具有Collections。但是,有一些可用的库(例如trove或apache commons原语)可以实现此目的。
这具有很大的性能影响。原语的Boxed Types具有大量(几乎不需要)开销,因为每个Boxed对象都扩展了Java Basic Object
(我认为每个对象的开销约为8个字节)。我的列表中有1000个整数,而您的开销是其1000倍,这可能对您的内存不利。因此,如果内存消耗是一个问题,则原始集合是解决此问题的好方法。
如果内存消耗不成问题,则可以使用带框的类型和jazees答案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句