Java8 将String[]数组Integer[]等包装类数组转化成int[]等基本类型数组

Posted 尨德一彼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java8 将String[]数组Integer[]等包装类数组转化成int[]等基本类型数组相关的知识,希望对你有一定的参考价值。

 

把一个包装类型数组String[]、Integer[]等转化成int[]等基本类型数组,是在太不想用for循环就用Java8的stream吧

public class ToStreamIntString{
	
	public static void main(String[] args) {
		Scanner in  = new Scanner(System.in);
		List<String> 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+" ") ); System.out.println("\n\n---> String[] to List, List to Stream"); List<String> y = Arrays.asList(ys); y.stream().forEach((i)-> System.out.print(i+" ")); in.close(); } }
 
Java8的Stream可以用多种方式获取,其中对集合类来说就可以直接使用stream()方法,查看源码可以知道Collection接口新增了default方法Stream<E> stream(),
Java的集合类都能够使用stream()方法获得stream。

public interface Collection<E> extends Iterable<E> {

    /**
     * @since 1.8
     */
    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }
}

 







以上是关于Java8 将String[]数组Integer[]等包装类数组转化成int[]等基本类型数组的主要内容,如果未能解决你的问题,请参考以下文章

java8语法糖List<Integer>,List<String>,String之间互转

Java 8 将 int[][] 转换为 Integer[][] 的方法

JAVA8新特性

使用 Java 8 Stream API 合并两个 Map<String, Integer>

如何将2d Integer数组转换为2d String数组?

java8 Map的一些简单使用