java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 20350|回复: 103

【Java源码】Java8函数式编程之Function github源码 java代码

  [复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2090

    主题

    3748

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66756

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-8-6 01:10:52 | 显示全部楼层 |阅读模式
    《Java8函数式编程之Function》场景:可以应用在计算逻辑中 java代码0 |( q3 ^# @! e- F1 D
    " G4 G, q6 G$ g/ c0 I) }1 B
    部分java源码:4 H+ T+ G; C' k0 \7 c/ p! [7 o" {
    1、8 v, }, V" V/ k; |4 D
    package com.javazx.jdk8;. r5 D; O, k6 J! U* I6 {  g# |
    , b, M+ `3 n0 P. _
    import java.util.function.BiFunction;+ q8 n' Q: d$ N) [$ t0 D3 W
    import java.util.function.Function;
    5 e8 l" |! x* v/ X, I" B: @

    5 E) @: T+ t; l- S4 u+ x* {' |8 s
    /**( [* ^  A$ N/ c8 _9 S6 }
    * @author: itmrchen7 ]& N3 ?; f0 w. c8 I7 i/ {" `2 Q* Z
    * @Description: Function中的compose和andThen两个方法的使用1 U' \2 [" R' y% w) Y. e
    * 如果是两个参数一个输出则用BiFunction
    4 b/ b0 B+ _3 z
    * @date 2019/8/6 0:16  q) @, v8 m# Y& F! t. O# |
    */
    0 ]; B( ?4 Q* g
    public class FunctionTest2 {
    ) X! T4 J4 c' {0 t) c" K    public static void main(String[] args) {& ^' i1 \/ \4 y) d  [( q+ D
            FunctionTest2 functionTest = new FunctionTest2();
    ) E5 v$ j. n; z' w" H# |* k
            System.out.println(functionTest.compute(2, value -> value * 3, value -> value * value));
    ' _2 y1 q) V4 |9 C( x# m5 Z( p
            System.out.println(functionTest.compute2(2, value -> value - 3, value -> value * value));2 B4 }+ Q& ~7 @5 d! Q3 D  e  ?
    ) o9 ?2 z! O0 m* z  v6 m
            System.out.println(functionTest.compute3(2, 3, (value1, value2) -> value1 + value2));
    , c2 f0 l: w' J  g3 W
    ( f4 S, X- Z: X$ _* U4 W- u3 V
            System.out.println(functionTest.compute4(2, 3, (value1, value2) -> value1 + value2, value -> 2 * value));
    $ u8 D; ?$ i) m" [! P( r/ B
    7 r+ |3 d$ e: b3 ^! {+ ?" X
        }; B. E2 k8 u$ D- [

    : I6 R" z& [% G9 w! d    /**
    2 y. W& `% q1 @( \
         * 先计算function2 再将结果与function1运算3 b3 b; v5 `# i- q' v; F& k
         *7 K  v3 ]7 Q. L! w2 _1 k+ e
         * @param a6 \. }# E9 O0 U1 D7 I
         * @param function1
    ; m0 L/ M& ]) q) I9 {& Z
         * @param function2$ o) j. T% ?, j1 g
         * @return
    9 M$ k. i" n' e) i' k1 I# G
         */
    4 X7 M$ [6 {" \8 p$ @
        public int compute(int a, Function<Integer, Integer> function1, Function<Integer, Integer> function2) {* [+ x7 X/ c) f* D
            return function1.compose(function2).apply(a);
      H! \, l' J: J
        }
    & V. D' J4 O2 s& [: B% r3 c( y
    & q0 w$ ^4 c+ a+ T: O2 w) y    /**
    1 o" I. H- [. ]0 z
         * 先计算function1 再将结果与function2运算
    ! l2 M+ a1 x( r: v5 |/ Y: J
         *& _( N& v. Y: c" ?
         * @param a4 x, ]; a! p% K, V
         * @param function1& Z: Q  i% U* Y
         * @param function2; {7 y- _: c& }9 n+ \% X: w: ?
         * @return
    + V4 {, ]4 y$ [* L
         */  Z7 {& x7 s9 N$ x8 x
        public int compute2(int a, Function<Integer, Integer> function1, Function<Integer, Integer> function2) {
    6 y$ ~# Q# i6 }/ k+ Z$ G2 K  q        return function1.andThen(function2).apply(a);
    7 x2 t  X# f& I. Q- J# Q  ]7 Q: {
        }4 o/ X! l# w7 Y3 U
    / c' F$ k8 ]# E. l5 d
        /*** B2 k6 f8 U) i: d, c
         * 具体操作由调用者决定
    4 }$ i  A; s  q
         *4 K6 P( C' W# g/ D
         * @param a
    & L" W5 F/ ]3 |
         * @param b
    9 n% [2 t3 L  s0 o
         * @param function0 }% f/ [" z* F# u& G
         * @return
    * q1 o* @7 Z8 y% b' Q8 D
         */
    7 k+ b$ W' ]! t. A. ]
        public int compute3(int a, int b, BiFunction<Integer, Integer, Integer> function) {
    - Q' h( D0 w9 c$ Y. e- p        return function.apply(a, b);
    " @4 R$ c: ^% u) l+ a$ y
        }5 l4 G. `6 x4 s/ P! Q

    - q, m' X7 n2 g+ Y) ^+ O0 A    /**' T& U0 k' ^. D; E2 @# v
         * @param a2 `& a* B! o/ L
         * @param b
    & }8 d. l$ E/ l
         * @param biFunction+ @8 F: Z4 @, W: v
         * @param function! y. W8 \' p6 h" o$ l9 `+ o
         * @return+ w1 @+ B0 ^% |6 Z
         */
    ! T* s* I' I  G3 L
        public int compute4(int a, int b, BiFunction<Integer, Integer, Integer> biFunction, Function<Integer, Integer> function) {
    1 z( Q3 a( O3 B$ Z4 f) F: ?( m        return biFunction.andThen(function).apply(a, b);
    9 X( v) o, I9 t9 A9 W+ f; g; S
        }( n3 P1 I3 G% u, \% V

    - F7 a' m* _) x1 Y( t7 U2 e* j0 w/ x( q/ c
    }1 L+ K. q5 w) X( D* [9 t) U" ]$ `

    : P& B' V( u! ?

    0 K6 a3 y- f, X) J/ O2 b4 Q# a) U9 n6 j3 J: a

      [( D5 a) m" ^, V6 _" G% P2 x5 g) t2 a2 K5 _
    github地址:
    https://github.com/itmrchen/java8位置在 java8\src\main\java\com\javazx\jdk8\FunctionTest.java FunctionTest2.java
    , ~2 u) f* _2 g
    ( a* g- Y8 l/ t8 o( f( S+ W$ d& v6 S+ c

    2 A4 C$ E5 r4 I% x% F. I4 i
    ( }0 W6 e! c) `) G
    7 T: _; g, I( I( U- x9 d( |6 u' g
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    4615

    帖子

    9234

    积分

    普通会员

    Rank: 2

    积分
    9234
    发表于 2019-12-24 19:03:52 | 显示全部楼层
    大佬  厉害呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4555

    帖子

    9112

    积分

    普通会员

    Rank: 2

    积分
    9112
    发表于 2020-1-8 12:45:19 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4557

    帖子

    9116

    积分

    普通会员

    Rank: 2

    积分
    9116
    发表于 2020-1-24 22:50:22 | 显示全部楼层
    学习学习再学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4550

    帖子

    9102

    积分

    普通会员

    Rank: 2

    积分
    9102
    发表于 2020-2-6 12:19:26 | 显示全部楼层
    很完美的教程!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4676

    帖子

    9354

    积分

    普通会员

    Rank: 2

    积分
    9354
    发表于 2020-2-11 09:44:48 | 显示全部楼层
    多谢分享~~~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4643

    帖子

    9292

    积分

    禁止发言

    积分
    9292
    发表于 2020-2-12 09:19:14 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4712

    帖子

    9426

    积分

    普通会员

    Rank: 2

    积分
    9426
    发表于 2020-2-15 18:06:43 | 显示全部楼层
    天哪终于找到这个课程了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4636

    帖子

    9274

    积分

    普通会员

    Rank: 2

    积分
    9274
    发表于 2020-2-18 18:38:05 | 显示全部楼层
    佩服佩服!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4530

    帖子

    9070

    积分

    禁止发言

    积分
    9070
    发表于 2020-2-29 23:13:13 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2025-3-26 10:53 , Processed in 0.829379 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表