抄底券网站怎么做的,怎么建设小型网站,公司注册资金可以变更减少吗,电商网站建设与管理实践1.Stream流的作用#xff08;流水线#xff09;
结合了Lambda表达式#xff0c;简化集合、数组的操作#xff1b;
2.Stream流的使用步骤
①先得到一条Stream流#xff08;流水线#xff09;#xff0c;并将数据放上去#xff1b;
②利用Stream流中的API进行各种操作…1.Stream流的作用流水线
结合了Lambda表达式简化集合、数组的操作
2.Stream流的使用步骤
①先得到一条Stream流流水线并将数据放上去
②利用Stream流中的API进行各种操作
eg:过滤 转换 【中间方法】方法调用完毕后还可以调用其他方法使用次数较多 统计 打印 【终结方法】方法调用完毕后不可以再调用其他方法一般在最后使用
③使用终结方法对流水线上的数据进行操作
3.怎样执行2.①
获取方式方法名说明单列集合default StreamE stream()Collection中的默认方法双列集合需先通过KeySet()orentrySet()转化成单列集合...数组public static T StreamTstream(T[]array)Array工具类中的静态方法一堆零散数据public static TStreamTof(T...values)Stream接口中的静态方法数据类型尽量一致
代码演示单列集合
import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.Stream;public class Listof {public static void main(String[] args) {ArrayListString listnew ArrayList();//创建单列集合Collections.addAll(list,张三,李四,王五,赵六,思思,张小三,张小思);//批量添加//StreamString streamlist.stream();//单列集合获取Stream流//过滤出单列集合中名字以”张“开头且长度为三的名称并进行打印list.stream().filter(name-name.startsWith(张)).filter(name-name.length()3).forEach(name-System.out.println(name));System.out.println(*********************************************);//获取单列集合中名字是两个字的人名并进行打印list.stream().filter(name-name.length()2).forEach(name-System.out.println(name));}
}双列集合
import java.util.*;public class Listof {public static void main(String[] args) {//双列集合HashMapInteger,String hmnew HashMap();hm.put(1,妲己);hm.put(2,小乔);hm.put(3,安其拉);hm.put(4,王昭君);hm.put(5,甄姬);SetInteger integers hm.keySet();integers.stream().forEach(Key- System.out.println(Key));System.out.println(***********************************);SetMap.EntryInteger, String entries hm.entrySet();entries.stream().filter(name-name.getValue().length()3).forEach(name- System.out.println(name));}
}数组零散数据
package Deom130;import java.util.Arrays;
import java.util.stream.Stream;public class Listof {public static void main(String[] args) {//数组int []array1{1,2,3,4,5};String []array2{a,b,c,d,e};Arrays.stream(array1).forEach(s- System.out.println(s));System.out.println(****************************);Arrays.stream(array2).forEach(s- System.out.println(s));System.out.println(****************************);//零散数据Stream.of(1,2,3,4,5).forEach(s- System.out.println(s));System.out.println(****************************);Stream.of(a,b,c,d,e).forEach(s- System.out.println(s));}
}
4.Stream流的中间方法改变的只是流里面的数据对原本集合中的数据不会有影响
名称说明StreamTfilter(Predicate?super Tpredicate过滤StreamTlimit(long maxSize) 获取前几个元素 limit3就是获取前三个元素 StreamTskip(long n)跳过前几个元素StreamTdistinct()去掉重复元素staticTStreamTconcat(Stream a,Stream b)合并两个流为一个流两个流上的数据类型尽量保持一致StreamRmap(FunctionT,R mapper)转换流中的数据类型
5.Stream流的终结方法
名称说明void forEach(Consumer action)遍历long count()统计toArray()收集流中的数据放到数组中collect(Collector)收集流中的数据放到集合中
6.案例分析
import java.util.*;
import java.util.stream.Collectors;public class Listof {public static void main(String[] args) {//定义一个集合存储数据过滤奇数。留下偶数,并存储到集合中ArrayListInteger list1new ArrayList();Collections.addAll(list1,1,2,3,4,5,6,7,8,9,10);ListInteger collect list1.stream().filter(s - s % 2 0).collect(Collectors.toList());System.out.println(collect);System.out.println(***********************************);ArrayListString list2new ArrayList();Collections.addAll(list2,张三23,李四24,王五25);MapString, String collect1 list2.stream().filter(s - Integer.parseInt(s.split()[1]) 24).collect(Collectors.toMap(s - s.split()[0], s - s.split()[1]));System.out.println(collect1);}
}
需求
有两个集合分别存储六个演员年龄和姓名现需男演员只要名字为3个字的前两个人女演员只要姓杨的并且不要第一个再将得到的两个集合合并为一个集合并且封装成以一个Actor对象最后将数据存到集合list中
实现代码
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class Listof {public static void main(String[] args) {ArrayListString list1new ArrayList();Collections.addAll(list1,蔡坤坤24,比个耶23,刘不甜22,伍仟24,谷嘉30,肖梁梁27);ArrayListString list2new ArrayList();Collections.addAll(list2,赵小影35,杨颖36,高圆圆43,张天天31,刘诗35,杨小幂33);StreamString boylimit list1.stream().filter(s - s.split()[0].length()3).limit(2);StreamString girlskip list2.stream().filter(s - s.split()[0].startsWith(杨)).skip(1);ListActor collect Stream.concat(boylimit, girlskip).map(s - new Actor(s.split()[0], Integer.parseInt(s.split()[1]))).collect(Collectors.toList());System.out.println(collect);}
}