利用Stream實現簡單的等差數列求和

2022-02-24 06:11:24 字數 815 閱讀 1337

我們都熟知高斯的故事,認識等差數列也是從這個故事開始的,程式設計課程為了練習for迴圈,也在不斷的練習這個從1加到100的例子,那麼原始的辦法是這樣的:

int sum1 = 0;

for (int i = 1; i <= 100; i++)

system.out.println(sum1); //5050

但是這個段**稍顯冗長,如果利用流式程式設計,則會漂亮很多:

int gausssum = intstream.rangeclosed(1, 100).reduce(0, integer::sum);

system.out.println("gausssum=" + gausssum); //5050

上面這段**的邏輯是首先生成乙個從1到100的等差數列,然後對其進行reduce聚合,結果就出來了。

或者再進一步,如果要給乙個2到100的偶數數列求和,該如何寫**,傳統的**:

int sum1 = 0;

for (int i = 2; i <= 100; i+=2)

system.out.println(sum1); //2550

換成流式程式設計:

int gausssum = intstream.rangeclosed(1, 100).filter(n -> n%2==0).reduce(0, integer::sum);

system.out.println(gausssum);

這裡用到了filter介面,**也很簡單,還有點像python的range。

簡單測試Stream的執行效率

對乙個string集合中資料進行轉大寫操作,用for迴圈100000次,下面是使用不同方式的執行效率 stream 的方法引用 stream 的lambda函式 foreach迴圈 3011 2325 3369 3417 3573 3526 24503136 2293 372849302823 34...

利用Qt實現簡單的介面

ui 開啟ui檔案,我們就可以再裡面畫我們的控制項,畫好之後,qt會同步幫我們生成乙個叫ui的的類,我們可以通過這個類來引用我們繪製的控制項。我們也可以在ui檔案的設計界面對乙個按鈕或者其他的控制項新增槽 qt中的驅動機制就是基於訊號和槽的繫結 具體步驟就是,選中乙個控制項 右鍵 轉到槽,然後就可以...

利用函式實現簡單功能

1.實現乙個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出9 9口訣表,輸出12,輸出12 12的乘法口訣表。include include void mul int n printf n int main 2.使用函式實現兩個數的交換。include void swap int p...