常用方法:
映射:map
如果需要将流中的元素映射到另一个流中,可以使用map方法。方法签名:
<R> Stream<R> map(Function<? super T,? extends R> mapper);
该接口需要一个Function函数式接口参数 可以将当前六中的T类型数据转化为另一个R类型的流
这可以将一种T类型转换为R类型 而这种转换的动作 就称为“映射”
代码:
/* 如果需要将流中的元素映射到另一个流中,可以使用map方法。 <R> Stream<R> map(Function<? super T,? extends R> mapper); 该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转化为另一种R类型的流。 Function中的抽象方法: R apply(T t); */ public class BStream4 { public static void main(String[] args) { //获取一个String类型的Stream流 Stream<String> stream = Stream.of("1", "2", "3", "4"); //使用map方法,把字符串类型的整数,转换(映射)为Integer类型的整数 Stream<Integer> ni = stream.map((String spr)->{ //转换为整数 return Integer.parseInt(spr); }); ni.forEach(i-> System.out.println(i)); } }
运行结果:
统计个数:count
正如旧集合Collection当中的size方法一样 流提供count方法来数一数其中的元素个数
long count();
该方法返回一个long值代表元素个数(不再像旧集合那样是int值)
count方法是一个终结方法 返回值是一个long类型的整数 所以不能再继续调用Stream流中的其他方法了
代码:
public class BStream5 { public static void main(String[] args) { //获取一个Stream流 ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); list.add(7); Stream<Integer> stream = list.stream(); //统计元素中的个数 long count = stream.count(); System.out.println(count);//输出 } }
运行结果:
取用前几个:limit
limit方法可以对流进行截取,只取用前n个,方法签名:
Stream<T> limit(long maxSize);
参数是一个long型 如果集合当前长度大于参数则进行截取 否则不进行操作
代码:
/* Stream流中常用方法——limit:用于截取流中的元素 limit方法可以对流进行截取,只取前n个。方法签名: Stream<T> limit(long maxSize); 参数是一个long型,如果集合当前长度大于参数则进行截取,否则不进行操作 limit方法是一个延迟方法,只是对流中的元素进行截取,返回的是一个新的流,所以可以继续调用Stream流中的其他方法 */ public class BStream6 { public static void main(String[] args) { //定义字符串类型数组 String[] arr = {"喜羊羊","美羊羊","沸羊羊","灰太狼","红太狼"}; //获取Stream流 Stream<String> arr1 = Stream.of(arr); //使用limit对Stream流中的元素进行截取,只要前3个元素 Stream<String> limit = arr1.limit(3); //遍历limit流 limit.forEach(name-> System.out.println(name)); } }
运行结果:
标签:Stream,流中,常见,list,long,limit,方法 From: https://www.cnblogs.com/qihaokuan/p/16613251.html