<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 函數組合 函數組合(Function Composition)意為“多個函數組合成新函數”。它通常是函數式編程的基本組成部分。在前面的 `TransformFunction.java` 類中,有一個使用 `andThen()` 的函數組合示例。一些 `java.util.function` 接口中包含支持函數組合的方法 [^7]。 | 組合方法 | 支持接口 | | :----- | :----- | | `andThen(argument)` <br> 根據參數執行原始操作 | **Function <br> BiFunction <br> Consumer <br> BiConsumer <br> IntConsumer <br> LongConsumer <br> DoubleConsumer <br> UnaryOperator <br> IntUnaryOperator <br> LongUnaryOperator <br> DoubleUnaryOperator <br> BinaryOperator** | | `compose(argument)` <br> 根據參數執行原始操作 | **Function <br> UnaryOperator <br> IntUnaryOperator <br> LongUnaryOperator <br> DoubleUnaryOperator** | | `and(argument)` <br> 短路**邏輯與**原始謂詞和參數謂詞 | **Predicate <br> BiPredicate <br> IntPredicate <br> LongPredicate <br> DoublePredicate** | | `or(argument)` <br> 短路**邏輯或**原始謂詞和參數謂詞 | **Predicate <br> BiPredicate <br> IntPredicate <br> LongPredicate <br> DoublePredicate** | | `negate()` <br> 該謂詞的**邏輯否**謂詞| **Predicate <br> BiPredicate <br> IntPredicate <br> LongPredicate <br> DoublePredicate** | 下例使用了 `Function` 里的 `compose()`和 `andThen()`。代碼示例: ```java // functional/FunctionComposition.java import java.util.function.*; public class FunctionComposition { static Function<String, String> f1 = s -> { System.out.println(s); return s.replace('A', '_'); }, f2 = s -> s.substring(3), f3 = s -> s.toLowerCase(), f4 = f1.compose(f2).andThen(f3); public static void main(String[] args) { System.out.println( f4.apply("GO AFTER ALL AMBULANCES")); } } ``` 輸出結果: ``` AFTER ALL AMBULANCES _fter _ll _mbul_nces ``` 這里我們重點看正在創建的新函數 `f4`。它調用 `apply()` 的方式與常規幾乎無異[^8]。 當 `f1` 獲得字符串時,它已經被`f2` 剝離了前三個字符。這是因為 `compose(f2)` 表示 `f2` 的調用發生在 `f1` 之前。 下例是 `Predicate` 的邏輯運算演示.代碼示例: ```java // functional/PredicateComposition.java import java.util.function.*; import java.util.stream.*; public class PredicateComposition { static Predicate<String> p1 = s -> s.contains("bar"), p2 = s -> s.length() < 5, p3 = s -> s.contains("foo"), p4 = p1.negate().and(p2).or(p3); public static void main(String[] args) { Stream.of("bar", "foobar", "foobaz", "fongopuckey") .filter(p4) .forEach(System.out::println); } } ``` 輸出結果: ``` foobar foobaz ``` `p4` 獲取到了所有謂詞并組合成一個更復雜的謂詞。解讀:如果字符串中不包含 `bar` 且長度小于 5,或者它包含 `foo` ,則結果為 `true`。 正因它產生如此清晰的語法,我在主方法中采用了一些小技巧,并借用了下一章的內容。首先,我創建了一個字符串對象的流,然后將每個對象傳遞給 `filter()` 操作。 `filter()` 使用 `p4` 的謂詞來確定對象的去留。最后我們使用 `forEach()` 將 `println` 方法引用應用在每個留存的對象上。 從輸出結果我們可以看到 `p4` 的工作流程:任何帶有 `"foo"` 的字符串都得以保留,即使它的長度大于 5。 `"fongopuckey"` 因長度超出且不包含 `foo` 而被丟棄。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看