[轉載] Java8新特新--Stream語法應用在ArrayList的元素移除和排序

參考鏈接: 如何在Java 8中打印Stream的元素

單元測試:?

??

?@Test

? ? public void Test02(){

? ??????

? ? ? ? // 源

? ? ? ? ArrayList<Integer> IdsSour = new ArrayList<>();

? ? ? ? IdsSour.add(5);

? ? ? ? IdsSour.add(1);

? ? ? ? IdsSour.add(3);

? ? ? ? IdsSour.add(2);

? ? ? ? IdsSour.add(6);

? ? ? ? IdsSour.add(4);

? ??????

? ? ? ? // 目標

? ? ? ? List<Integer> IdsDes = new ArrayList<>();

? ??????

? ??

? ? ? ? System.out.println("============移除 4 ============");

? ??

? ? ? ? IdsDes = (ArrayList<Integer>) IdsSour.stream().filter(id->id!=4).collect(Collectors.toList());

? ? ? ? for (Integer id : IdsDes) {

? ? ? ? ? ? System.out.println(id);

? ? ? ? }

? ??????????????

? ? ? ? System.out.println("============移除 4 5 6============\n\n");

? ??????????????

? ? ? ? int[] ids = new int[]{4,5,6};

? ??????

? ? ? ? //按ID的 大小 從大到小 逆序 排列

? ? ? ? IdsDes = (List<Integer>) IdsSour.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());

? ??????

? ? ? ? for(int i = 0 ;i < ids.length ; i++){

? ??????????

? ? ? ? ? ? int ret = ids[i];

? ? ? ? ? ? //filter的寫法 比 直接if判斷再remove要含蓄的多,看起來舒服,但是效率不見得有for循環快

? ? ? ? ? ? IdsDes = (ArrayList<Integer>) IdsDes.stream().filter(id->id!=ret).collect(Collectors.toList());

? ??????????

? ? ? ? ? ? System.out.println("+++++++++++++++++第"+(i+1)+"次過濾后");

? ??????????

? ? ? ? ? ? for (Integer id : IdsDes) {

? ? ? ? ? ? ? ? System.out.println(id);

? ? ? ? ? ? }????????

? ? ? ? }

? ??????????

? ? ? ? System.out.println("==================================");

? ??????

? ? ? ? //最后 按自然排序【默認】打印出IDsDes的內容

? ? ? ? //先sorted再foreach --? 簡單優雅 -- 優雅的背后 必定會有犧牲

? ? ? ? IdsDes.stream().sorted().collect(Collectors.toList()).forEach(id->System.out.println(id));

? ??????

? ??????????

? ? }

?

?

??

運行效果:

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

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

相關文章

搭建iscsi存儲系統

搭建iscsi存儲系統 NAS和SAN服務器概述 NAS網絡附屬存儲&#xff1a; NAS&#xff08;Network Attached Storage)&#xff0c;NAS服務器是連接在網絡上&#xff0c;具備資料存儲功能的服務器&#xff0c;一種與用數據存儲服務器。網絡附屬存儲基于標準網絡協議&#xff08;Tcp/…

[轉載] Java8 Stream流遍歷 如何使用索引

參考鏈接&#xff1a; Java 8中迭代帶有索引的流Stream 1. 問題來源 Java8的Stream流為我們的遍歷集合帶來了方便&#xff0c;基本可以取代for循環了。但是有一些情況需要知道當前遍歷的索引&#xff0c;使用for循環當然可以輕易獲得&#xff0c;但使用stream就很難了。 比如…

Jquery簡單的右側浮動菜單

今天有空稍微看了下Jquery動畫函數animate這個方法&#xff0c;發現可以用這個方法來做下簡單的右側浮動菜單 因為經常做淘寶頁面時候會碰到這樣的效果 以前都是用人家的javascript組件代碼 發現老是用人家也不好&#xff0c;所以今天有空用jqeury中的animate這個方法寫了一個簡…

[轉載] Java8-Stream API 詳解

參考鏈接&#xff1a; 如何在Java 8中從Stream獲取ArrayList 摘要 Stream 作為 Java 8 的一大亮點&#xff0c;它與 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 對 XML 解析的 Stream&#xff0c;也不是 Amazon Kinesis 對大數據實時處理…

在Microsoft System Center中利用您的現有投資管理VMware--Veeam MP v6.5

在 Microsoft System Center 中利用您的現有投資管理 VMware VeeamManagement Pack (MP) v6.5 適用于物理、虛擬和備份基礎架構的單一的虛擬管理平臺 前段時間介紹了Veeam Management Pack (MP) v6.0產品&#xff0c;昨天發布了新版本VeeamManagement Pack (MP) v6.5&#xff0…

[轉載] Java關鍵字(Java 8版本)

參考鏈接&#xff1a; 所有Java關鍵字列表 定義 被Java語言賦予了特殊含義&#xff0c;用作專門用途的字符串&#xff08;單詞&#xff09;&#xff0c;這些關鍵字不能用于常量、變量、和任何標識符的名稱。 Java關鍵字(Java 8版本) Java關鍵字(Java 8 以后版本) 注意事…

uiw 1.2.17 發布,基于 React 16 的組件庫

發布&#xff0c; 高品質的UI工具包&#xff0c;React 16的組件庫。 文檔網站&#xff1a;uiw-react.github.io開源倉庫&#xff1a;github.com/uiw-react/u… 更新內容&#xff1a; ? 修復沒有代碼檢測文件匹配*.css。 5712887 ? 添加 .editorconfig 文件. d82dabf ? 給測試…

[轉載] Java中this和super關鍵字分別是什么意思

參考鏈接&#xff1a; Java中的Super關鍵字 this和super關鍵字 this是自身的一個對象&#xff0c;代表對象本身可以理解為指代當前的對象&#xff0c;它可以調用當前對象的屬性、方法和構造方法&#xff0c;一般情況下可以省略&#xff0c;必須使用this的地方是區分出現名字重…

SpringMVC注解HelloWorld

今天整理一下SpringMVC注解 歡迎拍磚 RequestMapping RequestMapping是一個用來處理請求地址映射的注解&#xff0c;可用于類或方法上。用于類上&#xff0c;表示類中的所有響應請求的方法都是以該地址作為父路徑。 RequestMapping注解有六個屬性&#xff0c;下面我們把她分成三…

mysql問答匯集

問:A&#xff0c;B兩臺mysql實現主從復制,A提供寫&#xff0c;B提供讀,那既然B要同步A&#xff0c;當A更新數據的時候&#xff0c;B不也一樣要更新嗎&#xff1f;那B不還是沒有實現負載減輕嗎&#xff1f;還有能通過MYSQL proxy實現3臺mysq均衡l嗎&#xff1f;一臺寫&#xff0…

自制 移動端 純原生 Slider滑動插件

在Google搜關鍵字“slider”或“swiper”能找到一大堆相關插件&#xff0c;自己造輪子是為了能更好的理解其中的原理。 給這個插件取名為“veSlider”是指“very easy slider”非常簡單的一個滑動插件。 這只是個半成品&#xff0c;僅僅實現了手指滑動、自動輪播、跳轉等基本功…

ISA Server 2006 部署步驟

ISA Server 2006 部署步驟 Posted by 尹揆 在這里先把ISA2006的安裝步驟給大家貼出來,后面陸續會有一些配置及日常的應用,希望大家多多指教!呵呵.ISA功能的強大自然不用多說了,一句話只要能想到它就能做到!放入光盤出現在我們面前還是其人性化的界面點默認的下一步吧接受協議序…

ELK 分析 nginx access 日志

注意&#xff1a;修改配置后建議重新創建index 1、nginx 日志文件格式 123log_format elk "$http_clientip | $http_x_forwarded_for | $time_local | $request | $status | $body_bytes_sent | ""$request_body | $content_length | $http_referer | $http_use…

mysql將查詢數據另存

1.查詢mysql的存儲執行目錄&#xff08;secure-file-priv是指定文件夾作為導出文件存放的地方&#xff09;所以需要查詢以下&#xff0c;不然會報1290錯誤 show variables like %secure%;2.查詢并轉存 SELECT * into outfile C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\zo…

重新撿起flask(三)

記一次bug調試。 本來以為模板這一章可以很快的過掉的&#xff0c;剛剛寫完的2其實只剩下個flask-moment時間庫了&#xff0c;之前早就做過&#xff0c;記得很簡單&#xff0c;本來說只要敲一下代碼就結束&#xff0c;沒想到&#xff0c;踩坑里去了。 調試bug嗎&#xff0c;我想…

遠程服務器部署spring boot 項目(centos7為例)

1.打包項目&#xff08;可以是jar包&#xff0c;也可以是war包&#xff09;以jar包為例&#xff08;用eclipse打包&#xff09;&#xff1a;1.項目目錄右擊--debug as&#xff08;run as&#xff09;--maven build&#xff0c;然后輸入package&#xff0c;點擊debug&#xff0c…

SIN的服務器配置

統計了新加坡服務器中IBM XIV存儲掛載的主機列表。 對于vmware虛擬機來說&#xff0c;是這么組成的&#xff1a; 存儲分了多個lun&#xff0c;在os側叫做data store&#xff0c;多個datastore掛給多個物理機&#xff0c;物理機(安裝了esxi軟件)稱為ESXI主機&#xff0c;多個ESX…

sklearn的train_test_split

sklearn的train_test_split train_test_split函數用于將矩陣隨機劃分為訓練子集和測試子集&#xff0c;并返回劃分好的訓練集測試集樣本和訓練集測試集標簽。 格式&#xff1a; X_train,X_test, y_train, y_test cross_validation.train_test_split(train_data,train_target,…

textmate bundle for jquery

使用這個bundle的例子:鍵入ready然后按tab就會生成下面的代碼:$(document).ready(function() { }); 其中第二行被選中,這時在里面編寫jquery代碼即可. 如果要查看某個function的官方文檔的話可以在鍵入的function之后使用快捷鍵ctrlh 查看. 關于bundle的下載 這里是一個textmat…

sklearn機器學習實例

原創網址&#xff1a;https://blog.csdn.net/qq_27150893/article/details/80169736 sklearn是非常流行的機器學習庫&#xff0c;實現了很多的機器學習模型。官網&#xff1a;http://scikit-learn.org/stable/ 里面有全面的實例和模型參數講解&#xff0c;用到哪個模型就去官…