Java 8中的List接口新增了一个stream()方法,可以返回一个Stream对象,可以通过这个对象进行一系列的操作,比如过滤、排序、映射等。而Stream对象中还有一个toArray()方法,可以将流中的元素转换成数组。下面通过一个案例来详细介绍该方法的使用。

案例描述:

有一个装着整数的List集合,现在需要将这个集合中的元素转换成一个数组,并对数组进行排序。

代码实现:

首先创建一个装着整数的List集合:

List list = new ArrayList<>(); list.add(5); list.add(2); list.add(9); list.add(1); list.add(3);

然后通过stream()方法将集合转换成一个Stream对象:

Integer[] arr = list.stream().toArray(Integer[]::new);

toArray()方法的参数是一个IntFunction类型的函数式接口,它的作用是根据传入的长度创建一个数组,并将Stream对象中的元素转换成数组的元素。

这里使用了一个Integer[]::new的方法引用,表示创建一个长度为Stream对象中元素个数的Integer类型数组。

最后对数组进行排序:

Arrays.sort(arr);

完整代码:

import java.util.ArrayList; import java.util.Arrays; import java.util.List;

public class Test { public static void main(String[] args) { List list = new ArrayList<>(); list.add(5); list.add(2); list.add(9); list.add(1); list.add(3);

    Integer[] arr = list.stream().toArray(Integer[]::new);
    
    Arrays.sort(arr);
    
    System.out.println(Arrays.toString(arr));
}

}

输出结果:

[1, 2, 3, 5, 9]

说明toArray()方法已经将集合中的元素转换成了一个数组,并且数组已经按照从小到大的顺序排好序了

liststream的toArray方法案例详解

原文地址: http://www.cveoy.top/t/topic/filD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录