ArrayList<Byte> arr = new ArrayList<Byte>();
arr.add(new Byte(1));
arr.add(new Byte(2));
arr.add(new Byte(3));
我如何才能将这个ArrayList转换成一个byte数组呢?
就相当于byte[] b = {1, 2, 3};
求指教!
谁答的好,赏黄图2张,种子2个。

------解决思路----------------------
arr.toArray(new Byte[0]);
------解决思路----------------------
1楼的做法是有问题的,看看toArray的源码就知道了,如果传入的数组长度为0的话,则没有作用。
应改为
Byte[] b = new Byte[arr.size()];
arr.toArray(b);
另外要说的是转换回来的数组并不是byte基本类型的数组,而是Byte类型的数组。
------解决思路----------------------
凤姐的图和种子就算了,你还是自己留着吧。
------解决思路----------------------
还是采取最傻的办法,for循环吧,依次把值赋给byte数组
------解决思路----------------------
public static String[] toStringArray(List<String> strList) {
String[] array = new String[strList.size()];
strList.toArray(array);
return array;
}
public static void main(String[] args) {
List<String> strList = new ArrayList<String>();
strList.add("Monkey");
strList.add("Cat");
strList.add("Pig");
strList.add("Rabbit");
toStringArray(strList);
for (int i = 0; i < toStringArray(strList).length; i++) {
System.out.println(toStringArray(strList)[i]);
}
}
------解决思路----------------------
没有现成的,手动处理。
------解决思路----------------------
ArrayList<Byte> arr = new ArrayList<Byte>();
arr.add(new Byte((byte)1));
arr.add(new Byte((byte)2));
arr.add(new Byte((byte)3));
System.out.println(arr.toArray(new Byte[0]));
for(byte b:arr.toArray(new Byte[0])){
System.out.println("-->"+b+"<--");
}
明显是可以的嘛