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

什么程序做网站容易优化免费服务器

什么程序做网站容易优化,免费服务器,网站设计建设有限公司,有教做素食的网站吗Stream流是jdk8开始新增的一套api,可以用于操作集合或数组的内容。 Stream流大量的结合了Lambda的语法风格来编程,功能强大,性能高效,代码简洁,可读性好。 体验Stream流 把集合中所有以三开头并且三个字的元素存储到…

Stream流是jdk8开始新增的一套api,可以用于操作集合或数组的内容。

Stream流大量的结合了Lambda的语法风格来编程,功能强大,性能高效,代码简洁,可读性好。

体验Stream流

把集合中所有以三开头并且三个字的元素存储到一个新集合。

package streamDemo;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class StreamDemo1 {public static void main(String[] args) {//目标:认识stream流,掌握基本使用步骤,体会它的优势List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若");list.add("赵敏");list.add("张强");list.add("张无忌");list.add("张三丰");list.add("张小四");//用传统方案找出姓张的人名字为三个字的存入到新集合中List<String> newList = new ArrayList<>();for(String name : list){if(name.startsWith("张")&&name.length()==3){newList.add(name);}}System.out.println(newList);//用stream流List<String> newList2=list.stream().filter(s -> s.startsWith("张")).filter(s ->s.length()==3).collect(Collectors.toList());System.out.println(newList2);}
}

相较于传统方法的排序和筛选,stream流只需要一行就可以实现功能,代码更简洁。

获取Stream流

语法:

Stream<集合或数组内存储的数据类型> 变量名 = 数组或集合名.stream();

示例

package streamDemo;import java.util.*;
import java.util.stream.Stream;public class StreamDemo2 {public static void main(String[] args) {//获取stream流的方式//1、获取集合的stream流,调用集合提供的stream()方法Collection<String> list = new ArrayList<>();Stream<String> s1 = list.stream();//2、Map集合Map<String,Integer> map = new HashMap<>();//获取它的键流Stream<String> s2 = map.keySet().stream();//值流Stream<Integer> s3 = map.values().stream();//键值对流Stream<Map.Entry<String, Integer>> s4 = map.entrySet().stream();//3、数组的流String[] names = {"张三丰","张学友","张学良"};Stream<String> s5 = Arrays.stream(names);System.out.println(s5.count());Stream<String> s6 = Stream.of(names);Stream<String> s7 = Stream.of("张三丰", "张无忌", "张三");}
}

Stream流的常用中间方法

中间方法指的是,使用完这个方法后,会返回一个新的Stream流,例如筛选完姓张的人后返回一个只有姓张的人的集合用于后续操作。

获取的Stream流可以使用多个中间方法进行筛选,直到选出我们需要的数据。

常用的几种方法有:过滤方法、合并方法、映射/加工方法等

Stream流中若是需要为自定义数据类型规定排序规则/筛选规则,可以使用Lambda方法。

示例

package streamDemo;import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class StreamDemo3 {public static void main(String[] args) {//掌握Stream流常用的中间方法,对流上的数据进行处理(返回新流:支持链式存储)List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若");list.add("赵敏");list.add("张强");list.add("张无忌");list.add("张三丰");list.add("张小四");//过滤方法list.stream().filter(s -> s.startsWith("张")).filter(s ->s.length()==3).forEach(s -> System.out.println(s));//排序方法List<Double> scorce = new ArrayList<>();scorce.add(99.8);scorce.add(98.7);scorce.add(83.7);scorce.add(67.5);scorce.add(67.5);scorce.stream().sorted().forEach(s-> System.out.println(s));//升序System.out.println("=============================");scorce.stream().sorted((s1,s2)->Double.compare(s2,s1)).forEach(s-> System.out.println(s));//降序System.out.println("=============================");scorce.stream().sorted((s1,s2)->Double.compare(s2,s1)).limit(2).forEach(System.out::println);//只要前两名System.out.println("=============================");scorce.stream().sorted((s1,s2)->Double.compare(s2,s1)).skip(2).forEach(System.out::println);//跳过前两名System.out.println("=============================");//如果希望自定义对象能够去重,需要重写对象的hashCode和equals方法才能去重scorce.stream().sorted((s1,s2)->Double.compare(s2,s1)).distinct().forEach(System.out::println);//去重//映射/加工方法: 把流上原本的数据拿出来变成新数据放回流上scorce.stream().map(s->"加十分后:"+(s+10)).forEach(System.out::println);//合并流Stream<String> s1 = Stream.of("张三丰", "张无忌", "张三");Stream<Integer> s2 = Stream.of(111,22,33);Stream<Object> s3 = Stream.concat(s1,s2);//每次只能合并两个System.out.println(s3.count());}
}

Stream流的常用终结方法

终结方法指的是调用完后不会返回新的Stream流了,不能再继续调用流了。

常用的一些终结方法有统计/收集方法。收集方法是将目前流中的数据存储到一个集合/数组中,统计方法是统计流中目前的元素数量,流中的最大值最小值等。

package streamDemo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@AllArgsConstructor
@NoArgsConstructor
@Data
public class Teacher implements Comparable<Teacher>{private String name;private int age;private double salary;@Overridepublic String toString(){return "Teacher{" +"name='" + name + '\'' +", age=" + age +", salary=" + salary +'}'+"\n";}//t2.compareTo(t1)//t2==this 比较者//t1==o 被比较者//规定:如果t2大于t1,返回正数;如果t2小于t1,返回负数;如果t2等于t1,返回0@Overridepublic int compareTo(Teacher o) {//按照年龄升序排序
//            if (this.age>o.age)
//                return 1;
//            else if (this.age<o.age)
//                return -1;
//            return 0;
//    }return this.age-o.age;//升序//return o.age-this.age;//降序}
}
package streamDemo;import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class StreamDemo4 {public static void main(String[] args) {//掌握Stream流的统计,收集操作(终结方法)List<Teacher> teachers = new ArrayList<>();teachers.add(new Teacher("张三",18,5000));teachers.add(new Teacher("老陈",38,8000));teachers.add(new Teacher("老金",58,15000));teachers.add(new Teacher("老魏",63,16000));teachers.add(new Teacher("张五",28,3500));teachers.stream().filter(s->s.getSalary()>6000).forEach(s-> System.out.println(s));System.out.println("======================================");long count = teachers.stream().filter(s -> s.getSalary() > 15000).count();  //计15000薪水以上的人数System.out.println(count);System.out.println("======================================");//获取薪水最高的老师对象Optional<Teacher> max = teachers.stream().max((t1, t2) -> Double.compare(t1.getSalary(), t2.getSalary()));Teacher maxTeacher = max.get();System.out.println(maxTeacher);//最小Optional<Teacher> min = teachers.stream().min((t1, t2) -> Double.compare(t1.getSalary(), t2.getSalary()));Teacher minTeacher = min.get();System.out.println(minTeacher);System.out.println("=====================================");List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若");list.add("赵敏");list.add("张强");list.add("张无忌");list.add("张三丰");list.add("张小四");//收集到集合或数组中Stream<String> s1 = list.stream().filter(s->s.startsWith("张"));//收集到list集合//流只能收集一次List<String> List1 = s1.collect(Collectors.toList());System.out.println(List1);//收集到Set集合Set<String> list2 =list.stream().filter(s->s.startsWith("张")).collect(Collectors.toSet());System.out.println(list2);System.out.println("=============收集到map集合===================");Stream<Teacher> s4 = teachers.stream();//收集到Map集合:键是老师名称,值是老师薪水Map<String, Double> map = s4.collect(Collectors.toMap(t1 -> t1.getName(), t1 -> t1.getSalary()));System.out.println(map);}
}

以上就是关于Stream流的基本语法。

http://www.dtcms.com/wzjs/317534.html

相关文章:

  • 常见网站推广方式对seo的理解
  • php做网站要用到的技术线上营销推广方案有哪些
  • 怎样做地方门户网站谷歌商店安卓版下载
  • 网站后台管理系统模板免费发布信息的平台有哪些
  • 威海网站建设哪一家seo排名优化工具推荐
  • 如何选择镇江网站建设菏泽资深seo报价
  • 扁平化色块风格的网站神马seo教程
  • 中华人民住房和城乡建设部网站品牌关键词优化哪家便宜
  • 一个网站的制作特点今日国内重大新闻
  • 一个域名怎么做两个网站软文标题例子
  • 免费的公司网站怎么做搜索引擎优化的简写是
  • 图片制作工具北京厦门网站优化
  • 站长字体百度快速优化排名软件
  • 怎么配置网站服务器网络推广的方式和途径有哪些
  • 个人域名网站可以做企业站吗重庆百度推广seo
  • 站外推广策划书东莞网站建设平台
  • MAC怎么做网站站长之家 seo查询
  • 长沙制作手机网站网络营销好找工作吗
  • 网页设计的尺寸百度爱采购优化软件
  • 中山网站建设公司哪家好站长工具国色天香
  • 做电商赚钱吗山东seo推广
  • 橙子建站是什么平台国内最好的危机公关公司
  • 支付网站技术服务费怎么做分录网站设计制作一条龙
  • 深圳网站开发哪家好seo网站关键词排名优化公司
  • vs2017网站开发教程成都外贸seo
  • 贵阳网站建设蜜蜂手机免费建网站
  • 东坑仿做网站郑州官网关键词优化公司
  • 用iis搭建网站免费企业黄页查询官网
  • 网站网站建设报价长沙专业竞价优化首选
  • 网站备案审核需要多久百度seo排名曝光行者seo