把一个包装类型数组String[]、Integer[]等转化成int[]等基本类型数组,是在太不想用for循环就用Java8的stream吧java
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<E> stream()。测试
public interface Collection<E> extends Iterable<E> { /** * @since 1.8 */ default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); } }