1. 程式人生 > >java8新特性(四):Stream流的使用

java8新特性(四):Stream流的使用

Java5的時候就引入了自動裝箱拆箱的功能, 在對包裝型別進行數學計算的時候,包裝型別就會被自動拆箱成基本型別, 而將一個基本型別的值賦值給一個包裝型別的變數或者放入集合中時基本型別又會被自動裝箱成包裝型別,這個過程是需要消耗計算效能的。Java8的包裝型別的流的計算過程中同樣包含了對基本型別的自動裝箱和拆箱的過程,所以Java8又引入了三個原始型別的流用來解決這個問題。(IntStream, DoubleStream和LongStream), 分別對應基本型別int, double, long,從而避免了自動裝箱和拆箱的效能消耗。

相關推薦

java8特性Stream的使用

Java5的時候就引入了自動裝箱拆箱的功能, 在對包裝型別進行數學計算的時候,包裝型別就會被自動拆箱成基本型別, 而將一個基本型別的值賦值給一個包裝型別的變數或者放入集合中時基本型別又會被自動裝箱成包裝型別,這個過程是需要消耗計算效能的。Java8的包裝型別的流的計算過程中同樣包含了對基本型別的自動裝箱和拆箱

Java8特性------介面中可以定義方法體

 Java8比起以前的版本存在很大的變化,我們知道在之前的版本中介面只能是定義抽象的方法,是不能定義實現的,但是在java8環境下,這個不可能已經變得可能。下面我們通過例子一步一步的來講解下java8

JDK1.8特性stream

一.什麼是stream? 1.概述 Java 8 API添加了一個新的抽象稱為流Stream,可以讓你以一種宣告的方式處理資料。 這種風格將要處理的元素集合看作一種流, 流在管道中傳輸, 並且可以在管道的節點上進行處理, 比如篩選, 排序,聚合等。 元素流在管道中經過中間操作的處理,最後由最終操作得到前面處理

Java8特性

並行流與序列流 什麼是並行流 我們先了解一下什麼是Fork/Join框架 Fork/Join框架和傳統的執行緒池的區別 應用Fork/Join計算100000000的和: public class ForkJoinCalculate extends

Java8特性---Lambda表示式

Java8新特性之Lambda表示式 Lambda的語法格式 語法格式一:無引數,無返回值 語法格式二:有一個引數,並且無返回值 語法格式三:若只有一個引

php7特性面向物件部分

1)、PHP 7 支援new class 來例項化一個匿名類這可以用來替代一些"用後即焚"的完整類定義。 2)、Closure::call():將一個閉包函式動態繫結到一個新的物件例項並呼叫執行該函式 3)、use:可以使用一個 use 從同一個 namespace 中匯入類、函

Spring Boot 2.0 特性配置繫結 2.0 全解析

在Spring Boot 2.0中推出了Relaxed Binding 2.0,對原有的屬性繫結功能做了非常多的改進以幫助我們更容易的在Spring應用中載入和讀取配置資訊。下面本文就來說說Spring Boot 2.0中對配置的改進。 配置檔案繫結 簡單型別 在S

Java8特性方法引用、構造器引用、陣列引用

目錄: 1、方法引用 1.1、物件 :: 例項方法 1.2、類 :: 靜態方法 1.3、類 ::例項方法 2、構造器引用 2.1、介紹 2.2、使用 3、陣列引用 3.1、介紹 3.2、使用 1、方法引用 若lambda體中的內容有方法已經實現了,

php 7特性型別的限定

1、標量型別宣告: a.預設:以前的弱型別 b.嚴格:declare(strict_types=1)  //strict_types的值(1或者0),1表示嚴格型別, 0表示弱型別 可以使用的型別引數有:int  float   bool     string inte

PHP特性效能優化

1)、為 unserialize() 提供過濾的特性:可以防止非法資料進行程式碼注入,提供了更安全的反序列化資料。 【注】所有php裡面的值都可以使用函式serialize()來返回一個包含位元組流的字串來表示。unserialize()函式能夠重新把字串變回php原來的值

C# 7.0 特性2 本地方法

本文參考Roslyn專案中的Issue:#259. 簡而言之,【本地方法】就是在方法體內部定義一個方法。 其實咋眼一看,這個新特新並沒有什麼新意,因為目前大量C#的專案中,都可以使用delegate或基於delegate變形的各種方案(lambda, Fun,

C# 7.0 特性1 基於Tuple的“多”返回值方法

本文基於Roslyn專案中的Issue:#347 展開討論. 回顧 首先,提出一個問題,C#中,如何使一個方法可返回”多個”返回值? 我們先來回顧一下C#6.0 及更早版本的做法。 在C#中,通常我們有以下4種方式使一個方法返回多條資料。 使用 KeyVal

Java8特性日期時間的API

1、新時間日期API java.time – 包含值物件的基礎包 java.time.chrono – 提供對不同的日曆系統的訪問 java.time.format – 格式化和解析時間和日期 java.time.temporal – 包括底層框架和擴

Java8特性方法引用

方法引用 方法引用其實就是Lambda表示式的簡寫,標誌是 :: 1、和Lambda表示式比較 public class Java8Test { public s

SQL Server2016特性1動態的顯示執行計劃(效果類似小視訊)

SQL Server2016種的一個新特性是 可以動態的顯示 執行計劃的過程,就像小視訊一樣的效果。 一、準備工作 在資料庫有一個表tb,資料量在8000w左右,如果資料量少了,顯示的動態過程會一閃而過。 演示的例子很簡單,就是要計算tb表的準確記錄數,程式碼如下: S

SQL Server2016特性2時態表 Temporal Table

SQL Server 2016 引入了對版本由系統控制的臨時表的支援,其附帶的內建支援可以提供表中儲存的資料在任意時間點的相關資訊,而不僅僅是資料在當前時刻正確的資訊。 臨時表是 ANSI SQL 2011 中引入的資料庫功能。 版本由系統控制的臨時表是使用者表的一種型別,

Android O 8.0特性 官方Demo

主要採用的google翻譯,不當之處,還望指正.Code Samples 程式碼示例Use the code samples below to learn about Android 8.0 (API level 26) capabilities and APIs. To d

kubernetes1.5特性支援Photon卷外掛

在Kubernetes中卷的作用在於提供給POD持久化儲存,這些持久化儲存可以掛載到POD中的容器上,進而

MQTT 5.0 特性Clean Start 與 Session Expiry Interval

前言 MQTT v5.0 中的 Clean Start 與 Session Expiry Interval,對於有 MQTT v3

PL真有意思控制

前言 對大多數計算模型而言,順序都是基本的東西,它確定了為完成所期望的某種工作,什麼事情應該最先做,什麼事應該隨後做,我們可以將語言規定順序的機制分為幾個類別: 順序執行 選擇 迭代 過程抽象 遞迴 併發 異常處理和推斷 非確定性 對於不同類別的語言對不同類別的控制流的重要性也不盡相同,比如順序執行相比於