当前位置: 首页 > news >正文

无锡网站建设 首选众诺中国网站优化公司

无锡网站建设 首选众诺,中国网站优化公司,婚庆公司网站的设计与实现,有什么网站是专做婚礼素材的Stream 什么是Stream流#xff1f; 在Java 8中#xff0c;得益于Lambda所带来的函数式编程#xff0c; 引入了一个全新的Stream流概念 #xff0c;用于解决已有集合/数组类库有的弊端。 Stream流能解决什么问题? 可以解决已有集合类库或者数组API的弊端。 Stream认为集合…Stream 什么是Stream流 在Java 8中得益于Lambda所带来的函数式编程 引入了一个全新的Stream流概念 用于解决已有集合/数组类库有的弊端。 Stream流能解决什么问题? 可以解决已有集合类库或者数组API的弊端。 Stream认为集合和数组操作的API很不好用所以采用了Stream流简化集合和数组的操作 小结 Stream流是用来简化集合类库或者数组API的弊端。 Stream流其实就一根传送带元素在上面可以被Stream流操作。 需求从集合中筛选出所有姓张的人出来。然后再找出姓名长度是3的人。 传统写法 public class StreamDemo01 {public static void main(String[] args) {ListString list new ArrayList();list.add(张无忌);list.add(周芷若);list.add(赵敏);list.add(张强);list.add(张三丰);//1.找姓张的人ListString Z_list new ArrayList();for (String s : list) {if(s.startsWith(张)){Z_list.add(s);}}System.out.println(Z_list);//2.姓名长度为3ListString Z_Long_list new ArrayList();for (String s : Z_list) {if(s.length() 3) Z_Long_list.add(s);}System.out.println(Z_Long_list);} }Stream流写法 public class StreamDemo01 {public static void main(String[] args) {//需求从集合中筛选出所有姓张的人出来。然后再找出姓名长度是3的人。ListString list new ArrayList();list.add(张无忌);list.add(周芷若);list.add(赵敏);list.add(张强);list.add(张三丰);list.stream().filter(s - s.startsWith(张)).filter(s - s.length() 3).forEach(System.out::println);} }如上见得stream基于函数式编程,更加简单 他的限制流filter可以链式编程最后遍历 Stream流的获取 Stream流式思想的核心 先得到集合或者数组的Stream流就是一根传送带然后就用这个Stream流操作集合或者数组的元素。然后用Stream流简化替代集合操作的API. 集合获取流的API: (1) default Stream stream(); 小结 集合获取Stream流用: stream(); 数组Arrays.stream(数组) / Stream.of(数组); public class StreamDemo01 {public static void main(String[] args) {/** --------------------Collection集合获取流------------------------------- */// Collection集合如何获取Stream流。CollectionString c new ArrayList();StreamString ss c.stream();/** --------------------Map集合获取流------------------------------- */MapString, Integer map new HashMap();// 先获取键的Stream流。StreamString keyss map.keySet().stream();// 在获取值的Stream流StreamInteger valuess map.values().stream();// 获取键值对的Stream流keyvalue Map.EntryString,IntegerStreamMap.EntryString,Integer keyAndValues map.entrySet().stream();/** ---------------------数组获取流------------------------------ */// 数组也有Stream流。String[] arrs new String[]{Java, JavaEE ,Spring Boot};StreamString arrsSS1 Arrays.stream(arrs);StreamString arrsSS2 Stream.of(arrs);} }Stream的常用API forEach : 逐一处理(遍历) count统计个数 – long count(); filter : 过滤元素 – Stream filter(Predicate? super T predicate) limit : 取前几个元素 skip : 跳过前几个 map : 加工方法 concat : 合并流。 public class StreamDemo03 {public static void main(String[] args) {ListString list new ArrayList();list.add(张无忌);list.add(周芷若);list.add(赵敏);list.add(张强);list.add(张三丰);list.add(张三丰);//遍历foreachlist.stream().filter(s - s.length() 3).filter(s - s.startsWith(张)).forEach(System.out::println);//统计个数countlong count list.stream().filter(s - s.length() 3).filter(s - s.startsWith(张)).count();System.out.println(count);//取前几个list.stream().filter(s - s.length() 3).limit(2).forEach(System.out::println);//跳过前几个list.stream().filter(s - s.length() 3).skip(2).forEach(System.out::println);//map方法(映射)加工方法 将原元素加工后放上去/*将所有名称都加上小小的……*/list.stream().map(s - 小小的 s).forEach(System.out::println);/*将名称都加工成学生对象*///list.stream().map(s - new Student(s)).forEach(System.out::println);list.stream().map(Student::new).forEach(System.out::println);//构造器引用/*** concat合并流*///数组流StreamInteger s1 Stream.of(10,20,30,40);//集合流StreamString s2 list.stream();//合并流 类型不同可用Object接 只能两两合并StreamObject allStream Stream.concat(s1,s2);allStream.forEach(System.out::println);} } 综合案例 public class StreamDemo04 {public static void main(String[] args) {ListString one new ArrayList();one.add(迪丽热巴);one.add(宋远桥);one.add(苏星河);one.add(老子);one.add(庄子);one.add(孙子);one.add(洪七公);ListString two new ArrayList();two.add(古力娜扎);two.add(张无忌);two.add(张三丰);two.add(赵丽颖);two.add(张二狗);two.add(张天爱);two.add(张三);/*** 1. 第一个队伍只要名字为3个字的成员姓名* 2. 第一个队伍筛选之后只要前3个人*/StreamString oneStream one.stream().filter(s - s.length() 3).limit(3);/*** 3. 第二个队伍只要姓张的成员姓名* 4. 第二个队伍筛选之后不要前2个人* 5. 将两个队伍合并为一个队伍*/StreamString twoStream two.stream().filter(s - s.startsWith(张)).skip(2);StreamString allStream Stream.concat(oneStream,twoStream);/*** 6. 根据姓名创建Student对象 (加工)* 7. 打印整个队伍的Student对象信息。*/allStream.map(Student::new).forEach(System.out::println);} }Stream终结与非终结方法 终结方法一旦Stream调用了终结方法流的操作就全部终结了不能继续使用 只能创建新的Stream操作。 终结方法 foreach , count。 非终结方法每次调用完成以后返回一个新的流对象, 可以继续使用支持链式编程 public class StreamDemo {public static void main(String[] args) {ListString list new ArrayList();list.add(张无忌);list.add(周芷若);list.add(赵敏);list.add(张强);list.add(张三丰);list.add(张三丰);// foreach终结方法list.stream().filter(s - s.startsWith(张)).filter(s - s.length() 3).forEach(System.out::println);long count list.stream().filter(s - s.startsWith(张)).filter(s - s.length() 3).count();System.out.println(count);} }收集Stream流 引入 Stream的作用是把集合转换成一根传送带借用Stream流的强大功能进行的操作。但是实际开发中数据最终的形式还是应该是集合最终Stream流操作完毕以后还是要转换成集合。这就是收集Stream流。 收集Stream流的含义就是把Stream流的数据转回到集合中去。 Stream流手段。 集合才是目的。 小结 收集Stream流的含义就是把Stream流的数据转回到集合中去。 熟练函数式编程如Lambda表达式简化函数式接口的匿名内部类形式以及四种方法引用简化Lambda表达式以及流式编程思想如Stream简化集合或者数组的操作。 public class StreamDemo {public static void main(String[] args) {ListString list new ArrayList();list.add(张无忌);list.add(周芷若);list.add(赵敏);list.add(张强);list.add(张三丰);list.add(张三丰);StreamString zhangLists list.stream().filter(s - s.startsWith(张));// 把stream流转换成Set集合。SetString sets zhangLists.collect(Collectors.toSet());System.out.println(sets);// 把stream流转换成List集合。StreamString zhangLists1 list.stream().filter(s - s.startsWith(张));ListString lists zhangLists1.collect(Collectors.toList());System.out.println(lists);// 把stream流转换成数组。StreamString zhangLists2 list.stream().filter(s - s.startsWith(张));Object[] arrs zhangLists2.toArray();// 可以借用构造器引用申明转换成的数组类型String[] arrs1 zhangLists2.toArray(String[]::new);} }
http://www.sadfv.cn/news/416107/

相关文章:

  • visual studio网站开发教程商城网站栏目
  • sem搜索老铁seo外链工具
  • 百度云搜索引擎网站wordpress专用主机
  • 鄂州做网站的公司百度一下手机版网页
  • 网站建设教程网站优点
  • 网站建设技术 教材建设银行网站功能介绍
  • 网赢做网站怎么样有美元进账去外管局网站做啥
  • 课工场网站建设培训织梦网站更换域名
  • 百度网站地址提交wordpress线报主题
  • 高端网站设计优化建站新闻软文发稿平台
  • 网站如何设置关键词莘县网站
  • flash源码网站天水+网站建设
  • 外贸建站服务推广公司众讯 网站建设
  • 烟台公司网站定制深圳龙岗区优化防控措施
  • 今题网免费发布信息网seo外包公司报价
  • 一个做网站的软件外贸网站如何做推广是什么
  • 网站的风格保持一致西安网站制作费用
  • 宁波网站建设地址新闻最新头条10条
  • 彭州做网站天猫商城官方网站
  • 网站建设的未来网站seo哪家好
  • 青岛市城市建设管理局网站html中文网站模板
  • 网站建设和运营哪家公司好oppo软件商店更新
  • 阿克苏网站建设价格泉州制作网页的网站
  • php做网站软件《设计》在线观看
  • 有经验的赣州网站建设建一个网站多少钱?
  • 做衣服网站有哪些网站cname解析
  • 可以看网站的浏览器有哪些浙江沉船事故最新消息
  • 营销网站开发哪家强网约车多少钱一辆
  • 怎么在word里做网站临沂做商城网站建设
  • 免费做苗木网站网站备案地点