Java:List,array转换,return int[ ]时

文章介绍了在Java8中将List<Integer>转换为int[]数组的两种方法:一是使用Stream的mapToInt和toArray方法;二是通过循环赋值。方法一具有更好的可读性,而方法二可能需要额外创建对象,但在某些情况下可能更高效。文章强调了代码可读性和执行效率的选择权衡。
摘要由CSDN通过智能技术生成

目标 list -> array[ ]

网上好多都是 String[] array=list.toArray(new String[list.size()]); 但是同样的方法得不到 int[] 类型的array[],后面会解释,先看答案

方法一:list.stream().mapToInt(Integer :: intValue).toArray()

public int[] returnArray(){
	List<Integer> list = new ArrayList<Integer>();
	list.add(0);
	return list.stream().mapToInt(Integer :: intValue).toArray();
}
  • 解释:
    • 将列表转换成Stream对象,调用Stream方法mapToInt() 将每个元素转换成整数类型
      • Integer :: intValue Java8 中的引用语法,表示对每个Integer对象调用它的intValue方法转换成int类型
    • 其次使用Stream中的toArray方法将流中的每个元素收集到 int[ ] 中

方法二:建立数组,循环读取赋值

public int[] returnArray(){
	List<Integer> list = new ArrayList<Integer>();
	list.add(0);
	
	int[] array = new int[list.size()];
	for(int i = 0; i < list.size(); ++i){
		array[i] = list.get(i);
	}
	return array;
}

网上博客返回String[ ] 类似类型的解释不清楚的地方以及方法对比

List<String> list = new ArrayList<String>();
String[] ss = list.toArray(new String[list.size()]);
  • list.toArray() 方法传入参数应该是对象类型 但是int[] 不是对象类型

    • 比如 int[ ] array = list.toArray(new int[ list.size()]); 会编译错误
  • 方法一 可读性好,比起方法二需要额外创建一个“IntStream”,总体上方法一二时间差距非常小

  • 方法二可读性比较差,容易出现错误

  • 建议方法一,代码可读性在函数执行频率高,list长度短时可以选用方法二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值