把一个包装类型数组String[]、Integer[]等转化成int[]等基本类型数组,是在太不想用for循环就用Java8的stream吧
public class ToStreamIntString{
Scanner in = new Scanner(System.in);
List list = new ArrayList<>();
for (int i = 0; i < 3; i++) {
list.add(in.nextLine());
}
String n = list.get(0);
System.out.println("\n---> String\n"+n);
String[] xs = list.get(1).split("\\s+");
String[] ys = list.get(2).split("\\s+");
System.out.println("\n---> String[] to int[]");// 需要输入纯数字
int[] x = Arrays.stream(xs).mapToInt(Integer::valueOf).toArray();
Arrays.stream(x).forEach( (i)-> System.out.print(i+10+" ") );
System.out.println("\n\n---> String[] to List, List to Stream");
List y = Arrays.asList(ys);
y.stream().forEach((i)-> System.out.print(i+" "));
}
测试结果:
Java8的Stream可以用多种方式获取,其中对集合类来说就可以直接使用stream()方法,查看源码可以知道Collection接口新增了default方法Stream stream()。
public interface Collection extends Iterable {
/**
* @since 1.8
*/
default Stream stream() {
return StreamSupport.stream(spliterator(), false);
}
}