Stream流的簡單用法

filter

//stream流中的filter
//filter 方法用于通過設置的條件過濾出元素。以下代碼片段使用 filter 方法過濾掉空字符串:
List<String> filter = Arrays.asList("mz", "", "mz55", "m", "MZ");
Stream<String> stringStream = filter.stream().filter(item -> !item.isEmpty());
stringStream.forEach(item -> {stringBuilder1.append(item).append(",");
});
System.out.println(stringBuilder1);
//mz,mz55,m,MZ

map

//stream流中的map
//map 方法用于映射每個元素到對應的結果,以下代碼片段使用 map 輸出了元素對應的平方數:
List<Integer> map = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder = new StringBuilder();
Stream<Integer> integerStream = map.stream().map(i -> i * i);
integerStream.forEach(item -> {stringBuilder.append(item).append(",");
});
System.out.println(stringBuilder);
//9,4,4,9,49,9,25,

limit/skip

//limit/skip
//imit 返回 Stream 的前面n 個元素;skip 則是扔掉前n個元素。以下代碼片段使用limit 方法保留4個元素:
List<Integer> limit = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder2 = new StringBuilder();
Stream<Integer> limit1 = limit.stream().limit(4);
limit1.forEach(item ->{stringBuilder2.append(item).append(",");
});
System.err.println(stringBuilder2);
//3,2,2,3,

sorted

//sorted
//sorted 方法用于對流進行排序。以下代碼片段使用 sorted 方法進行排序:
List<Integer> sorted = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder3 = new StringBuilder();
Stream<Integer> sorted1 = sorted.stream().sorted();
sorted1.forEach(item -> {stringBuilder3.append(item).append(",");
});
System.out.println(stringBuilder3);
//2,2,3,3,3,5,7,

distinct

//distinct
//distinct主要用來去重,以下代碼片段使用 distinct 對元素進行去重:
List<Integer> distinct = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder4 = new StringBuilder();
Stream<Integer> distinct1 = distinct.stream().distinct();
distinct1.forEach(item -> {stringBuilder4.append(item).append(",");
});
System.out.println(stringBuilder4);
//3,2,7,5,

綜合用法

//接下來演示下,當一個Stream先后通過filter、map、sort、limit以及distinct處理
//后會發生什么。
List<String> list = Arrays.asList("mz", "", "mz55", "m", "MZ","Hello","HelloWord","mz");
StringBuilder stringBuilder5 = new StringBuilder();
Stream<Integer> distinct2 = list.stream().filter(ite -> ite.length() <= 6).map(String::length).sorted().limit(3).distinct();
distinct2.forEach(item -> {stringBuilder5.append(item).append(",");
});
System.out.println(stringBuilder5);
//0,1,2,

forEach

//forEach
//Stream 提供了方法 “forEach’來迭代流中的每個數據。以下代碼片段使用 forEach 輸出了10個隨機數:
Random random = new Random();
random.ints().limit(10).forEach(System.err::println);

count

//count
//count用來統計流中的元素個數。
List<String> count = Arrays.asList("mz", "", "mz55", "m", "MZ","Hello","HelloWord","mz");
long count1 = count.stream().count();
System.err.println(count1);
//8

collect

//collect
//collect就是一個歸約操作,可以接受各種做法作為參數,將流中的元素累積成一個匯總結果:
List<String> collect = Arrays.asList("mz", "", "mz55", "m", "MZ","Hello","HelloWord","mz");
StringBuilder stringBuilder6 = new StringBuilder();
List<String> mz = collect.stream().filter(item -> item.startsWith("m")).collect(Collectors.toList());
mz.forEach(itme -> {stringBuilder6.append(itme).append(",");
});
System.err.println(stringBuilder6.toString());
//mz,mz55,m,mz,

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

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

相關文章

初始redis:在Ubuntu上安裝redis

1.先切換到root用戶 使用su命令切換到root 2.使用apt命令來搜索redis相關的軟件包 命令&#xff1a;apt search redis 3.下載redis 命令&#xff1a; apt install redis 在Ubuntu 20.04中 &#xff0c;下載的redis版本是redis5 4.查看redis狀態 命令&#xff1a; netst…

Python自動化測試系列[v1.0.0][高效自動化設計]

Python多線程應用于自動化測試 將多線程在測試巧妙地應用&#xff0c;確實會帶來很多好處&#xff0c;并且這是充分利用機器資源執行高效率測試很好的方式 # -*- coding: utf-8 -*- import threading from time import ctime import time from selenium import webdriverdef …

LLM 入門與實踐(四) Yi 部署與分析

本文截取自20萬字的《PyTorch實用教程》&#xff08;第二版&#xff09;&#xff0c;敬請關注&#xff1a;《Pytorch實用教程》&#xff08;第二版&#xff09;無論是零基礎入門&#xff0c;還是CV、NLP、LLM項目應用&#xff0c;或是進階工程化部署落地&#xff0c;在這里都有…

python對象

類 我們目前所學習的對象都是Python內置的對象但是內置對象并不能滿足所有的需求&#xff0c;所以我們在開發中經常需要自定義一些對象類&#xff0c;簡單理解它就相當于一個圖紙。在程序中我們需要根據類來創建對象類就是對象的圖紙&#xff01;我們也稱對象是類的實例&#…

JAVA--IO流

一、IO流什么&#xff1f; I/O是Input/output的縮寫&#xff0c;用于處理設備之間的數據傳輸。如讀/寫文件、網絡通訊。 java程序中&#xff0c;對于數據的輸入、輸出是以流&#xff08;Stream)的方式進行。 Java.io包下提供了各種流類和接口&#xff0c;用以獲取不同種類的數…

web自動化(六)unittest 測試報告跳過用例

三種類型測試報告&#xff1a;unittest.TextTestRunner、BeautifulReport、HTMLTestRunner Python3.0 無法直接安裝 HTMLTestRunner 安裝 XTestRunner pip install XTestRunner安裝 BeautifulReport pip install BeautifulReportimport unittestclass TestSkipCase(unittest…

ELfK logstash filter模塊常用的插件 和ELFK部署

ELK之filter模塊常用插件 logstash filter模塊常用的插件&#xff1a; filter&#xff1a;表示數據處理層&#xff0c;包括對數據進行格式化處理、數據類型轉換、數據過濾等&#xff0c;支持正則表達式 grok 對若干個大文本字段進行再分割成一些小字段 (?<字段名…

【算法篇】KMP算法,一種高效的字符串匹配算法

我們今天了解一個字符串匹配算法-KMP算法&#xff0c;內容難度相對來說較高&#xff0c;建議先收藏再細品&#xff01;&#xff01;&#xff01; KMP算法的基本概念 KMP算法是一種高效的字符串匹配算法&#xff0c;由D.E.Knuth&#xff0c;J.H.Morris和V.R.Pratt提出的&#…

LLMs之gptpdf:gptpdf的簡介、安裝和使用方法、案例應用之詳細攻略

LLMs之gptpdf&#xff1a;gptpdf的簡介、安裝和使用方法、案例應用之詳細攻略 目錄 gptpdf的簡介 1、處理流程 第一步&#xff0c;使用 PyMuPDF 庫&#xff0c;對 PDF 進行解析出所有非文本區域&#xff0c;并做好標記&#xff0c;比如: 第二步&#xff0c;使用視覺大模型&…

離婚后,孩子就讀私立高中的高昂學費誰承擔?

江蘇省南京市六合區人民法院審結一起撫養費糾紛案件&#xff0c;認定夫妻雙方在決定孩子教育事務上均存在責任&#xff0c;為保障臨近高考的未成年子女的切身利益&#xff0c;認定由夫妻雙方按比例承擔教育費。   2015年6月&#xff0c;李某與王某離婚&#xff0c;雙方之子小…

PCL 有序點云的法線估計(使用積分圖進行法線估計)

使用積分圖進行法線估計 一、概述1.1 概念1.2 有序點云與無序點云1.2.1 有序點云1.2.2 無序點云1.3 代碼講解二、代碼實現三、結果示例一、概述 1.1 概念 使用積分圖進行法線估計:計算一個有序點云的法線,注意該方法只適用于有序點云。 1.2 有序點云與無序點云 有序點云與無…

MySQL安裝時initializing database失敗

問題頁面&#xff1a; 解決方法&#xff1a; 1.勾選紅框中的選項&#xff1a; 2.將下圖紅框中全部改為英文&#xff1a; 然后一路next就可以了。

cs231n作業1——KNN

參考文章&#xff1a;assignment1——KNN KNN 測試時分別計算測試樣本和訓練集中的每個樣本的距離&#xff0c;然后選取距離最近的k個樣本的標簽信息來進行分類。 方法1&#xff1a;Two Loops for i in range(num_test):for j in range(num_train):dist X[i, :] - self.X…

vue3使用方式匯總

1、引入iconfont阿里圖庫圖標&#xff1a; 1.1 進入阿里圖標網站&#xff1a; iconfont阿里&#xff1a;https://www.iconfont.cn/ 1.2 添加圖標&#xff1a; 1.3 下載代碼&#xff1a; 1.4 在vue3中配置代碼&#xff1a; 將其代碼復制到src/assets/fonts/目錄下&#xff1…

Mysql之Using index for skip scan

一、Using index for skip scan 在 MySQL 中&#xff0c;EXPLAIN 語句用于顯示查詢執行計劃&#xff0c;幫助我們理解查詢是如何被執行的&#xff0c;以及如何優化查詢。其中&#xff0c;Extra 列提供了關于查詢執行的一些額外信息。當 Extra 列顯示 Using index for skip sca…

CF F. Alex‘s whims

原題鏈接&#xff1a;Problem - 1899F - Codeforces 題目大意&#xff1a;要求構建出一顆樹&#xff0c;多次詢問樹的葉節點之間的距離有沒有達到要求的距離&#xff0c;如果有直接輸出-1 -1 -1&#xff0c;如果沒有可以斷開一條邊和連上一條邊&#xff0c;輸出x y z&#xff…

mp4視頻太大怎么壓縮不影響畫質,mp4文件太大怎么變小且清晰度高

在數字化時代&#xff0c;我們常常面臨視頻文件過大的問題。尤其是mp4格式的視頻&#xff0c;文件大小往往令人望而卻步。那么&#xff0c;如何在不影響畫質的前提下&#xff0c;有效地壓縮mp4視頻呢&#xff1f;本文將為您揭秘幾種簡單實用的壓縮技巧。 在分享和存儲視頻時&am…

Open3D 計算點云的歐式距離

目錄 一、概述 1.1歐式距離定義 1.2作用和用途 二、代碼實現 2.1關鍵函數 2.2完整代碼 三、實現效果 3.1原始點云 3.2處理后點云 一、概述 在Open3D中&#xff0c;compute_point_cloud_distance函數用于計算兩個點云之間的距離。具體來說&#xff0c;它計算的是源點云…

【計算機網絡仿真】b站湖科大教書匠思科Packet Tracer——實驗16 路由信息協議RIP

一、實驗目的 1.驗證RIP協議的作用&#xff1b; 二、實驗要求 1.使用Cisco Packet Tracer仿真平臺&#xff1b; 2.觀看B站湖科大教書匠仿真實驗視頻&#xff0c;完成對應實驗。 三、實驗內容 1.構建網絡拓撲&#xff1b; 2.驗證RIP協議。 四、實驗步驟 1.構建網絡拓撲 …

sdbusplus:將文件描述符作為method的返回值

sdbusplus:通過文件描述符作為參數調用method_libsdbusplus-CSDN博客 介紹了使用文件描述符作為參數的方式 文件描述符也可以作為method的返回值,然后用來傳遞數據 服務器端: //s.cpp #include <sdbusplus/asio/connection.hpp> #include <sdbusplus/asio/object…