java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 20514|回复: 103

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

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

    [LV.Master]出神入化

    2100

    主题

    3758

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66830

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

    发表于 2019-8-6 01:10:52 | 显示全部楼层 |阅读模式
    《Java8函数式编程之Function》场景:可以应用在计算逻辑中 java代码
    5 P# w% w* t  {# Z
    & c) p( W& [% S% ], \5 K% [# ~" }% V6 i/ a部分java源码:
    & L$ x- d9 V6 x* s1、
    " E) M& Y/ {- J9 K  e: B6 mpackage com.javazx.jdk8;- N: S) W% ?! g' \- T  v
    2 O7 N# q( L2 N, n% g" U7 U
    import java.util.function.BiFunction;! \! Y' u# B# ?) z" v
    import java.util.function.Function;0 Q# B# `/ T2 t+ i4 I. y7 I
    1 v- r* t0 T( g& h1 b/ G- d2 O% Q: `; O
    /**8 P5 i* s  a' R9 L. Z7 e! z
    * @author: itmrchen
    $ d. ~! N4 d4 D$ L! `# p+ V
    * @Description: Function中的compose和andThen两个方法的使用
    7 U4 [* c1 v- t/ }. {* F
    * 如果是两个参数一个输出则用BiFunction
    ; r5 N3 D, I' K2 t3 N
    * @date 2019/8/6 0:16
    " X! o% Z2 U/ z1 H
    */
    7 m0 Z1 w6 E; w6 `1 T% P
    public class FunctionTest2 {
    , [" r. h/ @/ o$ m2 u    public static void main(String[] args) {5 m5 N4 n" _+ ~6 u
            FunctionTest2 functionTest = new FunctionTest2();
    1 C- T) [) M! q8 \" o% P! Y
            System.out.println(functionTest.compute(2, value -> value * 3, value -> value * value));" S7 m' f  k: p: M
            System.out.println(functionTest.compute2(2, value -> value - 3, value -> value * value));
    1 W* {% |1 d/ a5 U1 H7 x+ a
    1 L0 A) k# O$ z+ V" J
            System.out.println(functionTest.compute3(2, 3, (value1, value2) -> value1 + value2));
    5 H: |. I- g8 |! v( d  R
    : p) u4 Z4 r7 I* F
            System.out.println(functionTest.compute4(2, 3, (value1, value2) -> value1 + value2, value -> 2 * value));
    % m5 ]( O, N& L

    5 ]; S: l% w: t7 O4 |& l
        }9 m4 C/ U) V3 x7 s7 z- ~
    8 m3 D1 l. ^: `0 `$ z2 h2 ?, L
        /**
    - m; T/ S! [/ |. V2 f( h$ _5 y
         * 先计算function2 再将结果与function1运算
    ( W, O; z. v) b1 z
         *# [2 w" |# Q. J, m. J; b2 o
         * @param a4 b& W% X4 p/ g
         * @param function17 E3 O( v3 p* N$ W5 ]" ]
         * @param function2
      O. n1 e# r, Q8 \* A2 E
         * @return
    3 R- C  I6 t( ~1 Z* |
         */
    ! F+ |9 @! @, \: K
        public int compute(int a, Function<Integer, Integer> function1, Function<Integer, Integer> function2) {
    0 ]; r/ ^. ^3 P  A8 `        return function1.compose(function2).apply(a);
    3 F- h, t, c. p; j8 v6 q
        }; w5 N/ Y% {. a" Q% }7 V7 u5 o
    - w' n  B, a8 F4 X8 Z
        /**4 K" v! m5 h. ~, Z- F
         * 先计算function1 再将结果与function2运算
    ! i. W" \0 l: I* n1 y
         *: }: v4 g8 [3 i% |. U8 L& z
         * @param a) Q$ a* |; l% |+ J* q! C
         * @param function1
    - b; M% `- ]+ M' U! w# Y
         * @param function2
    1 p) t. A6 B+ s% }
         * @return
    % L9 f: c: [* W7 c" x7 m
         */
    & B2 T( T# q# ^# t# d
        public int compute2(int a, Function<Integer, Integer> function1, Function<Integer, Integer> function2) {: a% K  J; L# \5 W( U$ n
            return function1.andThen(function2).apply(a);
    , `6 Y. f( W% ~4 d
        }
    0 U+ l6 y% Y, z0 M' s7 ^: l, R, K$ K4 t2 s% U2 O- H
        /**. t- g: }; ?' P' }6 |. q. x' w& t$ ?
         * 具体操作由调用者决定
    1 V1 t; v, \* b# P( M  A
         *8 j" {2 R& L. m  q2 ^6 G
         * @param a) y) v0 {& m3 a; C9 ^4 P
         * @param b+ N3 \  |# t+ w% S8 @3 _1 G1 a
         * @param function8 A- J' }# |6 D5 Q" ~+ X6 u% B) Q
         * @return$ B- G8 {9 d! w7 s9 B* e8 b
         */" V3 V4 ?! I( C6 [' d
        public int compute3(int a, int b, BiFunction<Integer, Integer, Integer> function) {
    6 q. s; b4 _8 e  [. L, N4 o1 m        return function.apply(a, b);
    . G7 B0 F( E( D8 l" g$ X, v
        }: h1 H2 h- r( ]1 S! R
    6 }$ c0 S  h9 [+ E" o7 s0 h
        /**
    1 s; c1 S/ r& e. p; z
         * @param a+ m% z6 B6 P; P3 k% H: e1 |
         * @param b' `" C5 R$ S  i/ h' u
         * @param biFunction* ]8 s8 I+ l7 z( l# g9 S6 \
         * @param function
    . E/ Q- }$ S7 X' O0 Q4 ~2 N
         * @return
    : h; k' ]- I7 T( {7 w- ~& J* m
         */4 W: J+ U8 z* c  w
        public int compute4(int a, int b, BiFunction<Integer, Integer, Integer> biFunction, Function<Integer, Integer> function) {0 {6 b8 |1 D+ R
            return biFunction.andThen(function).apply(a, b);
    # y' _/ s! D" `/ T
        }
    9 C+ ], ~0 c( m& H) S$ B, h$ N5 c# D) C1 Z7 _$ h- J( m& e; V6 f* M
    " \6 F6 E: S8 \+ _6 ]1 I6 S9 \/ _
    }- V6 G& L  k, C: _2 c' d$ u( S' {

    8 @  K" h% P4 D0 F
    3 i4 R* L) P& ~( S0 h
    7 Q+ j) Z( r; e# t& J6 P
    & a3 }  O$ ]$ l- R2 k7 [7 V  o
    ' @2 z  V+ _- z; `' p; D. l1 v
    github地址:
    https://github.com/itmrchen/java8位置在 java8\src\main\java\com\javazx\jdk8\FunctionTest.java FunctionTest2.java+ b: d- J% B$ u: R. r
    7 w& R0 N* G5 Q/ X

    0 G+ a( A. n$ `# d) n) F3 S" G
    $ D9 q# G7 P5 b

    8 ?& ]" w1 w! s$ ~% n
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    4696

    帖子

    9396

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4641

    帖子

    9284

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4641

    帖子

    9284

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4642

    帖子

    9286

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4780

    帖子

    9562

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4739

    帖子

    9484

    积分

    禁止发言

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4802

    帖子

    9606

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4723

    帖子

    9448

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4616

    帖子

    9242

    积分

    禁止发言

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-4-19 18:30 , Processed in 1.671553 second(s), 34 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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