ArrayList al=new ArrayList();
al为ArrayList型
int[] array=(int[])al.toArray(new int[al.size()]);
我想把这个ArrayList转化为int数组
但这句出错,怎么改呢?
Integer[] array=((Integer[])al.toArray());
可以转化为Integer数组,但Integer数组怎么转成int数组??谢谢
al为ArrayList型
int[] array=(int[])al.toArray(new int[al.size()]);
我想把这个ArrayList转化为int数组
但这句出错,怎么改呢?
Integer[] array=((Integer[])al.toArray());
可以转化为Integer数组,但Integer数组怎么转成int数组??谢谢
Object[] array= list.toArray();
int[] intArray = new int[array.length];
for(int i=0;i<array.length;i++){
Integer temp =(Integer) array[i];
intArray[i] = temp.intValue();
System.out.println(intArray[i]);
}
默认返回的是 Object[]
显然int 不属于 Object试试泛型
import java.util.*;
public class Test {
public static void main(String[] args){
ArrayList<Integer> arr = new ArrayList<Integer>();
for(int i = 0;i < 10;i++){//
arr.add(i);//自动打包功能,装成Integer类型
}
int[] array = new int[arr.size()];
for(int i = 0;i < array.length;i++){
array[i] = arr.get(i);////自动解包功能,解包成int类型
}
for(int i:array){
System.out.println(i);
}
}
}
String str = new String("");
str = "Axman";
明知道下面一定要赋一个有用的值,还有先生成一个空的对象然后抛弃.
明知道当数据的length为0时toArray方法会生成一个新数组.为什么还要生成一个length为0的数据对象
然后没有任何用处就抛弃,怕用户的内存太大会空耗电?
一个length为0的对象又会占多少内存呢?
如何使用啊??
Integer[] array=((Integer[])al.toArray());
int[] in=new int[80];
for (int i = 0; i < array.length; i++) {
in[i]=array[i].intValue();
System.out.println("in["+i+"]==="+in[i]);
}
方法比较笨!!
codeInteger[] array = al.toArray(new Integer[0]);
import java.util.Iterator;
import java.util.List;public class Test { /**
* 将指定 {@link List} 中 {@link Integer} 类型的元素转换为 int 数组。
* <p><strong>注意</strong>:此方法在多线程同时修改 {@code List} 的情况下可能抛出
* {@link IndexOutOfBoundsException} 异常,或使 {@code List} 中元素转换不完全。</p>
* @param list 要转换的列表。
* @return 转换成的 int 数组。
*/
public static int[] toIntArray(List list) {
if (list == null) throw new NullPointerException("argument list is null");
int LEN = 0;
if ((LEN = list.size()) == 0) return new int[0];
int[] result = new int[LEN];
int n = 0;
for (int i = 0; i < LEN;) {
Object o = list.get(i++);
if (o != null && o instanceof Integer) {
result[n++] = ((Integer)o).intValue();
}
}
if (n == LEN) return result;
int[] result2 = new int[n];
System.arraycopy(result, 0, result2, 0, n);
return result2;
} public static void main(String[] args) {
List test = new ArrayList();
for (int i = 0; i < 100; i++) {
double rnd = Math.random();
if (rnd < 0.3) {
test.add("test string");
} else if (rnd < 0.69) {
test.add(Integer.valueOf((int)(100 * Math.random())));
} else {
test.add(null);
}
}
System.out.println("TestData ===========================");
for (Iterator i = test.iterator(); i.hasNext();) {
System.out.println(i.next());
}
System.out.println("Result =============================");
int[] array = toIntArray(test);
for (int i = 0; i < array.length;) {
System.out.println(array[i++]);
}
}}
之前我也碰到要将集合转换成数组的问题,不知道怎么转,
看来对API还是不够熟悉啊!