qmediaplayer獲取流類型_Java 流API

7aeef13314bbd03c99ced21338b47764.png

流相關的接口和類在java.util.stream包中。

AutoCloseable接口來自java.lang包。

所有流接口從繼承自AutoCloseable接口的BaseStream接口繼承。

AutoCloseable

|

+--BaseStream

|

+--IntStream

|

+--LongStream

|

+--DoubleStream

|

+--Stream

如果流使用集合作為其數據源,并且集合不需要關閉。

如果流基于可關閉的數據源(例如文件I/O通道),那么我們可以使用try-with-resources語句創建流,以使其自動關閉。

BaseStream

BaseStream接口定義所有類型的流的所有方法。

  • Iterator iterator()
  • 終端操作
  • 返回流的迭代器。
  • sequential()
  • 中間操作
  • 返回順序流。 如果流已經是順序的,則它返回自身。 它將并行流轉換為順序流。
  • parallel()
  • 中間操作
  • 返回并行流。 如果流已經是并行的,則它返回自身。 它將并行流轉換為順序流。
  • boolean isParallel()
  • 如果流是并行,則返回true,否則返回false。
  • 在調用終端流操作方法后調用此方法可能會產生不可預測的結果。
  • unordered()
  • 中間操作
  • 返回流的無序版本。 如果流已經是無序的,則它返回自身。

Stream 接口表示元素類型T的流。

流 表示學生對象流。

Stream 接口包含諸如filter(),map(),reduce(),collect(),max(),min()等。

當使用原始類型時,我們可以使用三個專門的流接口,稱為IntStream,LongStream和DoubleStream。

這些接口提供了處理原始值的方法。

對于其他基本類型,例如float,short,byte,我們仍然可以使用三個專用流接口。

在下面的代碼中,我們將使用stream來計算列表中所有奇整數的平方和。

我們將使用以下步驟進行計算。

創建流

Collection接口中的stream()方法返回一個順序流。 這樣,集合充當數據源。

下面的代碼創建一個List 并從列表中獲取一個Stream

List numbersList = Arrays.asList(1, 2, 3, 4, 5);Stream numbersStream = numbersList.stream();

過濾流

如果指定的謂詞對于該元素返回真,Stream filter()使用Predicate來保留元素。

以下語句獲取僅奇數整數的流:

Stream< Integer> oddNumbersStream = numbersStream.filter(n - > n%2 == 1);

映射流

Stream< T> map()使用一個Function來映射每個元素在流中創建新流。

以下語句將流映射到其正方形:

Stream aStream = stream.map(n -> n * n);

Reduce流

reduce(T identity,BinaryOperator累加器)將流減少到單個值。

它采用一個初始值和一個 BinaryOperator 作為參數的累加器。

reduce(T identity,BinaryOperator< T>累加器)使用所提供的初始值和關聯累積函數對該流的元素執行減少,并返回減小的值。

這相當于:

T result = identity;for (T element : this stream) result = accumulator.apply(result, element)return result;

以下代碼將流中的所有整數相加。

int sum = aStream.reduce(0, (n1, n2) -> n1 + n2);

Integer.sum()方法執行兩個整數的和。

我們可以使用方法引用重寫代碼。

int sum = aStream.reduce(0, Integer::sum);

Together

以下代碼將每個步驟鏈接在一起。

import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream() .filter(n -> n % 2 == 1) .map(n -> n * n) .reduce(0, Integer::sum); System.out.println(sum); }}

上面的代碼生成以下結果。

5534195cdf3652c8c2e205700f945f88.png

有序流與無序流

流可以是有序的或無序的。

有序流保持其元素的順序。

Streams API可以將有序流(其可以表示有序數據源,例如列表或有序集)轉換成無序流。

我們還可以通過應用排序中間操作將無序流轉換為有序流。

import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) { List numbers = Arrays.asList(3,7,9,3,1,2,1, 2, 3, 4, 5); numbers.stream() .filter(n -> n % 2 == 1) .sorted() .forEach(System.out::println); }}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279368.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

田剛:龐加萊猜想與幾何

&#xff08;作者 田剛&#xff09; 時間&#xff1a;2015年11月1日 地點&#xff1a;北京大學北京國際數學研究中心 主題&#xff1a;未來論壇“理解未來”講座北大專場&#xff1a;龐加萊猜想與幾何 田剛&#xff1a; 非常高興能夠有這個機會來參加未來論壇講演。我今天要講的…

進化:從孤膽極客到高效團隊_極客學校:學習Windows 7 –遠程管理

進化:從孤膽極客到高效團隊In this installation of Geek School, we look at how we can administer our machines remotely using Remote Assistance, Remote Desktop, Windows Remote Management also known as WinRM, and PowerShell. 在此Geek School安裝中&#xff0c;我…

新秀翻譯(兩)——使用Java通用配置模板方法模式

假設你發現你已經非常重碼&#xff0c;你可能會考慮使用模板的方法來消除easy重復錯誤代碼。下面是一個示例:以下兩類,他完成了幾乎相同的功能&#xff1a; 實例化并初始化一個Reader來讀取CSV文件。讀取每一行并解析&#xff1b;把每一行的字符填充到Product或Customer對象&am…

框架基礎:深入理解Java注解類型(@Annotation)

注解的概念 注解的官方定義 首先看看官方對注解的描述&#xff1a; An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have no direct effect on the opera…

打印墨水調鋼筆墨水_如何節省墨水并改善網站打印質量

打印墨水調鋼筆墨水Printing out web pages you want a hard copy of can be a little hit and miss. Unlike other documents, it is not easy to tell exactly how many pieces of paper will be needed, and whether or not there will be any awkward clipping. Add to thi…

highcharts 怎么去掉鼠標懸停效果_練瑜伽減肥沒效果什么原因?

沒有心的參與&#xff0c;瑜伽就不是瑜伽曾經有很多人問&#xff1a;自己想用瑜伽來減肥&#xff0c;但練習瑜伽這么久&#xff0c;為什么還是減不下來&#xff1f;一點效果都沒有。瑜伽是什么&#xff1f;瑜伽只是一種單純的運動嗎&#xff1f;只讓身體參與進去就可以了嗎&…

百度地圖1

百度地圖BMap的類 BMap的屬性是一些構造函數,主大類有&#xff1a;核心類、基礎類、控件類、覆蓋物類、右鍵菜單類、地圖類型類、地圖吐槽類、服務類、全局類 核心類Map Map&#xff1a;最主要的一個類&#xff0c;集成了其他模塊的方法&#xff0c;是一個集成了整個地圖功能的…

Java基礎學習總結(23)——GUI編程

2019獨角獸企業重金招聘Python工程師標準>>> 一、AWT介紹 所有的可以顯示出來的圖形元素都稱為Component&#xff0c;Component代表了所有的可見的圖形元素&#xff0c;Component里面有一種比較特殊的圖形元素叫Container&#xff0c;Container(容器)在圖形界面里面…

spring-使用配置文件完成JdbcTemplate操作數據庫

一、創建spring項目項目名稱&#xff1a;spring101302二、在項目上添加jar包1.在項目中創建lib目錄/lib2.在lib目錄下添加spring支持commons-logging.jarjunit-4.10.jarlog4j.jarmysql-connector-java-5.1.18-bin.jarspring-beans-3.2.0.RELEASE.jarspring-context-3.2.0.RELEA…

瓦片經緯度及行列號轉換_Slippy map tilenames(瓦片和經緯度換算)

Slippy map tilenames(瓦片和經緯度換算)This article describes the file naming conventions for theSlippy Map application.Tiles are 256 256 pixel PNG filesEachzoom level is a directory, each column is a subdirectory, andeach tile in that column is a fileFilen…

在Windows 7或Vista(或Windows 8.x,Sorta)上禁用Aero

The Windows Aero Glass interface for Windows 7 or Vista requires a decent video card, you won’t be able to use it on an old clunker computer. For those worried about performance, sometimes squeezing every last drop requires disabling Aero. Windows 7或Vist…

一個簡單的JDBC通用工具

支持多種數據庫&#xff0c;統一方式產生連接&#xff0c;最優化、最簡單方式釋放資源。歡迎拍磚&#xff01;import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.sql.*; import java.util.List; import java.util.Properties…

sfm點云代碼_VisualSFM使用方法與心得

關于VisualSfM的更多內容組合多個模型(What if VisualSFM produces multiple models?)&#xff1a;按照上述步驟進行稀疏重建后&#xff0c;理論上可以得到很好的模型。如果結果產生了多個模型&#xff0c;要想把多個模型合成成一個&#xff0c;點擊菜單中的“SfM->More Fu…

macos mojave_使Ubuntu看起來像macOS Mojave的黑暗模式

macos mojaveIf you’re a Linux user who likes the look of the dark mode coming in macOS Mojave, you’re in luck: there’s a GTK theme just for you. 如果您是Linux用戶&#xff0c;并且喜歡macOS Mojave中的黑暗模式外觀&#xff0c;那么您很幸運&#xff1a;這里有一…

html的列表標簽

列表一般應用在布局中的新聞標題列表和文章標題列表以及網頁菜單等。 例如這個就是一個列表&#xff1a; 列表標簽有幾種&#xff0c;分別是有序列表&#xff0c;無序列表&#xff0c;定義列表。 有序列表<!DOCTYPE html> <html lang"en"> <head>&…

撬鎖錘怎么用_安全錘是啥?消防蜀黍教你怎么選?如何快速破拆逃生?

逃生錘又叫安全錘&#xff0c;生活中很多地方都可以看到&#xff0c;公交車、地鐵窗邊都少不了它們的身影它的款式也是五花八門&#xff0c;那么問題來了當遇到突發狀況被困車內時&#xff0c;哪種破窗工具最有效&#xff1f;又該如何快速逃生自救&#xff1f;近日&#xff0c;…

WSUS技術概覽

WSUS新功能展示: 支持更多微軟產品更新-->Windows Office MS SQL Server Exchange ......基于產品及分類篩選下載更新的能力更多語言支持定位更新目標計算機或計算機組的能力-->分發前,測試更新; 保護運行特定應用程序的計算機; 靈活使用Deadline; ...... 見下…

Java基礎學習總結(16)——Java制作證書的工具keytool用法總結

2019獨角獸企業重金招聘Python工程師標準>>> 一、keytool的概念 keytool 是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書&#xff0c;用于&#xff08;通過數字簽名&#xff09;自我認證&#xff08;用戶向別的用戶/服務認證自己&#xff09…

什么是文件擴展名?

A file extension, or filename extension, is a suffix at the end of a computer file. It comes after the period, and is usually two-four characters long. If you’ve ever opened a document or viewed a picture, you’ve probably noticed these letters at the end…

變量與常量

什么是變量/常量&#xff1f; 變量是計算機內存中的一塊區域&#xff0c;變量可以存儲規定范圍內的值&#xff0c;而且值可以改變。基于變量的數據類型&#xff0c;解釋器會分配指定內存&#xff0c;并決定什么數據可以被存儲在內存中。常量是一塊只讀的內存區域&#xff0c;常…