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

网站制作价格东莞360建站系统

网站制作价格东莞,360建站系统,网站流量作用,先建网站还是先做网页lambda 表达式的应用场景 Stream 的应用场景 Lambda/Stream 的进一步封装 自定义函数式接口(用 jdk 自带的函数式接口也可以) https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html import java.io.Serializable;/*** 可序…
  • lambda 表达式的应用场景

  • Stream 的应用场景

  • Lambda/Stream 的进一步封装

自定义函数式接口(用 jdk 自带的函数式接口也可以)

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

import java.io.Serializable;/*** 可序列化的Functional** @author VampireAchao*/
@FunctionalInterface
public interface Func<T, R> extends Serializable {/*** 调用** @param t 参数* @return 返回值*/R apply(T t);
}/*** 可序列化的函数式接口实现类** @author VampireAchao*/
public class FuncImpl implements Func<Object, String> {/*** 调用** @param o 参数* @return 返回值*/@Overridepublic String apply(Object o) {return o.toString();}
}Func<String, Integer> func = new Func<String, Integer>() {/*** 调用** @param s 参数* @return 返回值*/@Overridepublic Integer apply(String s) {return s.hashCode();}};

Lambda 这种简写的形式

java.util.stream (Java Platform SE 8 )

 Func<String, String> func1 = (String s) -> {return s.toUpperCase();};Func<String, String> func2 = (String s) -> s.toUpperCase();
Func<String, String> func3 = s -> s.toUpperCase();
Func<String, String> func4 = String::toUpperCase;import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.function.Supplier;/*** 语法糖——方法引用** @author VampireAchao*/
public class MethodReferences {public static Object staticSupplier() {return "whatever";}public Object instanceSupplier() {return "whatever";}public Object anonymousInstanceFunction() {return "whatever";}public static void main(String[] args) {// 引用构造函数Supplier<MethodReferences> conSup = () -> new MethodReferences();conSup = MethodReferences::new;// 数组构造函数引用IntFunction<int[]> intFunction = value -> new int[value];// intFunc == new int[20];int[] intFuncResult = intFunction.apply(20);// 引用静态方法Supplier<Object> statSup = () -> staticSupplier();statSup = MethodReferences::staticSupplier;Object statSupResult = statSup.get();// 引用特定对象的实例方法Supplier<Object> instSup = new MethodReferences()::instanceSupplier;instSup = new MethodReferences()::instanceSupplier;Object instSupResult = instSup.get();// 引用特定类型的任意对象的实例方法Function<MethodReferences, Object> anonInstFunc = streamDemo -> streamDemo.anonymousInstanceFunction();anonInstFunc = MethodReferences::anonymousInstanceFunction;}}

jdk 自带的函数式接口写法

import java.math.BigDecimal;
import java.util.function.*;/*** 常用的几个函数式接口写法** @author VampireAchao*/
class Usual {public static Consumer<Object> consumer() {// 有参数无返回值return o -> {};}public static Function<Integer, Object> function() {// 有参数有返回值return o -> o;}public static Predicate<Object> predicate() {// 有参数,返回值为booleanreturn o -> true;}public static Supplier<Object> supplier() {// 无参数有返回值return Object::new;}public static BiConsumer<String, Integer> biConsumer() {// 俩参数无返回值return (q, o) -> {};}public static BiFunction<Integer, Long, BigDecimal> biFunction() {// 俩参数,有返回值return (q, o) -> new BigDecimal(q).add(BigDecimal.valueOf(o));}public static UnaryOperator<Object> unaryOperator() {// 一个参数,返回值类型和参数一样return q -> q;}public static BinaryOperator<Object> binaryOperator() {// 俩参数和返回值类型保持一致return (a, o) -> a;}}

Java 8 API 的抽象称为流 Stream

java.util.stream (Java Platform SE 8 )

    // 声明式编程是告诉计算机需要计算“什么”而不是“如何”去计算// 现在,我想要一个List,包含3个数字6List<Integer> sixSixSix =// 我想要:Stream// 数字6.generate(() -> 6)// 3个.limit(3)// 最后收集起来转为List.collect(Collectors.toList());sixSixSix.forEach(System.out::print);//Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。// 就像sql里的排序、截取// 我要把传入的list逆序,然后从第五个(元素下标为4)开始取值,取4条abc = abc.stream()// 排序(按照自然顺序的逆序).sorted(Comparator.reverseOrder())// 从下标为4开始取值.skip(4)// 取4条.limit(4)// 最后收集起来转为List.collect(Collectors.toList());System.out.println("我要把传入的list逆序,然后从第五个(元素下标为4)开始取值,取4条");abc.forEach(System.out::print);System.out.println();/*** 老办法实现一个list,存储3个6** @return [6, 6, 6]*/private static List<Integer> oldSix() {// 老办法List<Integer> sixSixSix = new ArrayList<>(3);sixSixSix.add(6);sixSixSix.add(6);sixSixSix.add(6);System.out.println("老办法实现一个list,存储3个6");for (Integer integer : sixSixSix) {System.out.print(integer);}System.out.println();return sixSixSix;}/*** 新方法实现一个list,存储3个6** @return [6, 6, 6]*/private static List<Integer> newSix() {List<Integer> sixSixSix = Stream.generate(() -> 6).limit(3).collect(Collectors.toList());System.out.println("新方法实现一个list,存储3个6");sixSixSix.forEach(System.out::print);System.out.println();return sixSixSix;}// 管道中传输,节点中处理int pipe = abc.stream()// 筛选.filter(i -> i > 'G')// 排序.sorted(Comparator.reverseOrder()).mapToInt(Object::hashCode)// 聚合.sum();System.out.println("将26个字母组成的集合过滤出大于'G'的,逆序,再获取hashCode值,进行求和");System.out.println(pipe);//元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作 (terminal operation) 得到前面处理的结果。// 将26个大写字母Character集合转换为String然后转换为小写字符List<String> terminalOperation = abc.stream()// 中间操作(intermediate operation).map(String::valueOf).map(String::toLowerCase)// 最终操作(terminal operation).collect(Collectors.toList());System.out.println("26个大写字母Character集合,转换成String然后转换为小写字符,收集起来");terminalOperation.forEach(System.out::print);System.out.println();

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

相关文章:

  • 泉州做网站哪家好优化网站打开速度
  • 品牌网站查询seo基础培训
  • 东莞seo建站优化哪里好app推广赚钱平台
  • 招聘网站做销售怎么样新媒体运营培训
  • 网站一个一个关键词做陕西seo优化
  • wordpress做个人教学网站免费的推文制作网站
  • 做的网站每年都要交费吗品牌全案营销策划
  • 古董做推广哪个网站好教育培训机构推荐
  • 江苏省建设厅网站资质升级整站优化 快速排名
  • 网站建设用什么语言网站关键词提升
  • 黑龙江省建设教育网站如何设计企业网站
  • wordpress 数据读取seo优化博客
  • 怎么做区块链网站分类达人介绍
  • 698元网站建设sem网站推广怎么做
  • 聊城网站推广怎么做郑州网站推广公司哪家好
  • 下载谷歌浏览器seo团队管理系统
  • 苏州哪家做网站便宜百度人工服务24小时电话
  • 提供微网站建设企业培训视频
  • 上海建网站最新收录查询
  • 电子商务网站建设重要性怎样搭建一个网站
  • 一级a做囗爰片免费网站湖南网站建设工作室
  • 镇江网站优化哪家好网站优化名词解释
  • 做网站建设业务员好吗镇江百度推广
  • 网站建设的硬件支持如何推广网页
  • 石家庄做网站建设的公司排名关键词优化一年多少钱
  • 如何把网站做跳转浏览器链接地址chrome官网
  • 法治建设优秀网站引流推广方案
  • 石家庄桥西网站制作公司牡丹江seo
  • 唐山高端网站建设公司新河seo怎么做整站排名
  • 毕业论文做家具网站设计要求新闻发布