如何将包含整数的ArrayList转换为原始int数组?我试图用下面的代码将包含Integer对象的ArrayList转换为原始int[],但是它会引发编译时错误。可以用Java进行转换吗?List<Integer> x = new ArrayList<Integer>();
int[] n = (int[])x.toArray(int[x.size()]);
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
public static int[] convertIntegers(List<Integer> integers){ int[] ret = new int[integers.size()]; for (int i=0; i < ret.length; i++) { ret[i] = integers.get(i).intValue(); } return ret;}
integers
null
.)
LinkedList
:
public static int[] convertIntegers(List<Integer> integers){ int[] ret = new int[integers.size()]; Iterator<Integer> iterator = integers.iterator(); for (int i = 0; i < ret.length; i++) { ret[i] = iterator.next().intValue(); } return ret;}
HUX布斯
TA贡献1876条经验 获得超6个赞
int[] arr = list.stream().mapToInt(i -> i).toArray();
得到一个 Stream<Integer>
从名单上 获得 IntStream
通过将每个元素映射到自身(标识函数),将 int
每个人持有的价值 Integer
对象(自Java 5以来自动完成) 的数组 int
打电话 toArray
intValue
int[] arr = list.stream().mapToInt(Integer::intValue).toArray();
NullPointerException
null
//.filter(Objects::nonNull) also worksint[] arr = list.stream().filter(i -> i != null).mapToInt(i -> i).toArray();
List<Integer> list = Arrays.asList(1, 2, 3, 4);int[] arr = list.stream().mapToInt(i -> i).toArray(); //[1, 2, 3, 4]list.set(1, null); //[1, null, 3, 4]arr = list.stream().filter(i -> i != null).mapToInt(i -> i).toArray(); //[1, 3, 4]
侃侃无极
TA贡献2051条经验 获得超10个赞
import org.apache.commons.lang.ArrayUtils;... List<Integer> list = new ArrayList<Integer>(); list.add(new Integer(1)); list.add(new Integer(2)); int[] intArray = ArrayUtils.toPrimitive(list.toArray(new Integer[0]));
- 3 回答
- 0 关注
- 524 浏览
添加回答
举报
0/150
提交
取消