1. 程式人生 > >Java中stream的簡單使用

Java中stream的簡單使用

數量 arr 繼續 復數 () static class 簡單使用 簡單介紹

在Java8中,出現了stream流的概念。我個人認為,流的使用可以幫助我們更好的對數據集合進行叠代。

下面,先簡單看一下普通for循環和stream流的代碼。

public static void main(String[] args) {
        //取出偶數
        List<Integer> list = Arrays.asList(1,2,3,4);
        //1.for循環
        List<Integer> newList1 = new ArrayList<>();
        for (Integer integer : list) {
            if(integer % 2 == 0){
                newList1.add(integer);
            }
        }
        System.out.println(newList1);
        //2.stream流
        List<Integer> newList2 = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());
        System.out.println(newList2);
    }

輸出結果:

[2, 4]
[2, 4]

可以看出,對於stream流的使用,有時是可以簡化我們代碼的負責度,並且配合lambda表達式,可以讓代碼更加容易被人理解。

下面簡單介紹一下Java中stream流的使用:

1.創建stream流

List集合創建創建:調用List的stream方法即可,如 list.stream()

數組的創建方式為:通過Arrays.stream()傳入數組即可,如:Arrays.stream(new Integer[]{1,2})

註:stream流被創建出來之後只能被使用一次,如需再次循環需要再次創建!

2. 常用方法介紹:

流的方法被分為中間操作和終端操作,顧名思義,中間操作是指調用方法後生成新的流,可以繼續執行操作,而終端操作則是結束流的使用。

中間操作:

  1.filter  過濾掉不符合的數據

  2.limit  只取前x條數據

  3.skip  跳過(刪除)x條數據

  4.distinct  去重復數據

  5.sorted  排序

  6.map  對數據重整,生成新的數據流(如何從用戶集合流中取出用戶年齡作為新的流)

終端操作:

  1.count  統計數據數量

  2.forEach  對流中每個數據都執行傳入的方法

  3.anyMatch  至少一個匹配,返回bool

  4.allMatch  匹配所有,返回bool

  5.collect  可以傳入集合中的常用方法,例如:Collector.toList()將流轉回集合,Collector.groupingBy()將流中數據分組

  6.reduce  進行歸約操作,例如求和等

今天就先做了一下Java中stream流的簡單使用介紹,謝謝。

Java中stream的簡單使用