<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之旅 廣告
                ![](https://cdn.zimug.com/wx-zimug.png) 下面是視頻(優酷的清晰度有限):還是建議大家去B站觀看:[B站觀看地址](https://www.bilibili.com/video/BV1sE411P7C1/)。如果您覺得我做的工作對您有幫助,請去B站點贊、關注、轉發、收藏,您的支持是我不竭的創作動力! ```[youku] XNDU5NTk4MjI4MA ``` ## 一、什么是Java Stream API? Java Stream函數式編程接口最初是在Java 8中引入的,并且與lambda一起成為Java開發的里程碑式的功能特性,它極大的方便了開放人員處理集合類數據的效率。從筆者之前看過的調查文章顯示,絕大部分的開發者使用的JDK版本是java 8,其中Java Stream和lambda功不可沒。 Java Stream就是一個數據流經的管道,并且在管道中對數據進行操作,然后流入下一個管道。有學過linux 管道的同學應該會很容易就理解。在沒有Java Stram之前,對于集合類的操作,更多的是通過for循環。大家從后文中就能看出Java Stream相對于for 循環更加簡潔、易用、快捷。 管道的功能包括:Filter(過濾)、Map(映射)、sort(排序)等,集合數據通過Java Stream管道處理之后,轉化為另一組集合或數據輸出。 ![Java Stream函數式編程?用過都說好,案例圖文詳解送給你](http://cdn.zimug.com/javaStream1-2.jpg) ## 二、Stream API代替for循環 我們先來看一個例子: ``` List<String> nameStrs = Arrays.asList("Monkey", "Lion", "Giraffe","Lemur"); List<String> list = nameStrs.stream() .filter(s -> s.startsWith("L")) .map(String::toUpperCase) .sorted() .collect(toList()); System.out.println(list); ``` * 首先,我們使用Stream()函數,將一個List轉換為管道流 * 調用filter函數過濾數組元素,過濾方法使用lambda表達式,以L開頭的元素返回true被保留,其他的List元素被過濾掉 * 然后調用Map函數對管道流中每個元素進行處理,字母全部轉換為大寫 * 然后調用sort函數,對管道流中數據進行排序 * 最后調用collect函數toList,將管道流轉換為List返回 最終的輸出結果是:[LEMUR, LION]。大家可以想一想,上面的這些對數組進行遍歷的代碼,如果你用for循環來寫,需要寫多少行代碼?來,我們來繼續學習Java Stream吧! ## 三、將數組轉換為管道流 使用Stream.of()方法,將數組轉換為管道流。 ``` String[] array = {"Monkey", "Lion", "Giraffe", "Lemur"}; Stream<String> nameStrs2 = Stream.of(array); Stream<String> nameStrs3 = Stream.of("Monkey", "Lion", "Giraffe", "Lemur"); ``` ## 四、將集合類對象轉換為管道流 通過調用集合類的stream()方法,將集合類對象轉換為管道流。 ``` List<String> list = Arrays.asList("Monkey", "Lion", "Giraffe", "Lemur"); Stream<String> streamFromList = list.stream(); Set<String> set = new HashSet<>(list); Stream<String> streamFromSet = set.stream(); ``` ## 五、將文本文件轉換為管道流 通過Files.lines方法將文本文件轉換為管道流,下圖中的Paths.get()方法作用就是獲取文件,是Java NIO的API! 也就是說:我們可以很方便的使用Java Stream加載文本文件,然后逐行的對文件內容進行處理。 ``` Stream<String> lines = Files.lines(Paths.get("file.txt")); ```
                  <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>

                              哎呀哎呀视频在线观看