摘要:一,對集合設置只讀對比查看初始化對只讀設置安全可靠,并且相對簡單二,過濾器,更好的與集合類解耦,查看集合中的回文單詞,字符注意如果一個類只使用一次,并且這個類的對象也只是用一次,那么我們就是用匿名內部類工具過濾器函數式編程的靜態初始化找出回
一,對集合設置只讀
Listlist = new ArrayList (); list.add("a"); list.add("b"); list.add("c"); //對比查看初始化list grava 對只讀設置安全可靠,并且相對簡單 List immutableList = ImmutableList.of("A","B","C"); immutableList.add("c"); System.out.println(immutableList);//java.lang.UnsupportedOperationException }
二,過濾器,更好的與集合類解耦
1,查看集合中的回文單詞,字符
注意:
如果一個類只使用一次,并且這個類 的對象也只是用一次,那么我們就是用匿名內部類
工具:Collections2.filter 過濾器
函數式編程 //List的靜態初始化 Listlist = Lists.newArrayList("ab","bcb","cd","son","mom"); //找出回文 mirror words //匿名內部類的對象:匿名內部類,同時創建類對象 Collection parlidromeList = Collections2.filter(list, new Predicate (){ @Override public boolean apply(String input) { //業務邏輯 return new StringBuilder(input).reverse().toString().equals(input); } }); for(String tem:parlidromeList){ System.out.println(tem); } }
2,確保容器中字符串的長度不超過5,超過進行截取,并且全部大寫
//組合式函數編程 //確保容器中字符串的長度不超過5,超過進行截取,并且全部大寫 Listlists = Lists.newArrayList("good","happy","wonderful"); //確保容器中字符串的長度不超過5,超過進行截取 Function f1 = new Function (){ @Override public String apply(String input) { return input.length()>5?input.substring(0,5):input; } }; //轉成大寫 Function f2 = new Function (){ @Override public String apply(String input) { return input.toUpperCase(); } }; //現在需要將f1和f2組合在一起 String combinedStr = f2(f1(String)) Function f = Functions.compose(f1, f2); Collection resultCol = Collections2.transform(lists, f); for(String tem:resultCol){ System.out.println(tem); } }
3,添加約束條件(非空,長度驗證)
Setst = Sets.newHashSet(); //創建約束 Constraint constraint = new Constraint (){ @Override public String checkElement(String element) { //非空驗證 Preconditions.checkNotNull(element); //長度驗證 Preconditions.checkArgument(element.length()>=5 && element.length()<=20); return element; } }; Set cs = Constraints.constrainedSet(st, constraint); //cs.add("good");//java.lang.IllegalArgumentException //cs.add("");//java.lang.IllegalArgumentException //cs.add(null);//java.lang.NullPointerException cs.add("wonderful");//添加成功 System.out.println(cs); }
4,集合的操作:交集,差集,并集
Setset1 = Sets.newHashSet(1,2,3,4,6); Set set2 = Sets.newHashSet(2,4,6,7); //交集 System.out.println("交集為:"); SetView intersections = Sets.intersection(set1, set2); System.out.println(intersections); //差集 System.out.println("差集為:"); SetView diff = Sets.difference(set1, set2); System.out.println(diff); //并集 System.out.println("并集為:"); SetView union = Sets.union(set1, set2); System.out.println(union); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64848.html
摘要:模塊系統的前身是項目。最初,該項目僅僅是為設計實現一個模塊系統。隨著項目的不斷深入,平臺對標準模塊系統的呼求也日益增長,批準該項目升級為平臺的一部分,也能服務于和平臺的需求。自定義的配置,僅包含一組指定的模塊及其所需的模塊。 我的博客 轉載請注明原創出處。 序 從Java 9開始,在Java的世界里多了一個叫模塊(JSR376)的特性。模塊系統的前身是Jigsaw項目。最初,該項目僅...
摘要:緩存總體可分為兩種集中式緩存和分布式緩存集中式緩存與分布式緩存的區別其實就在于集中與非集中的概念,其對象可能是服務器內存條硬盤等。內存條版本緩存集中在一臺服務器的一條內存條上,為集中式緩存。 背景 緩存的主要作用是暫時在內存中保存業務系統的數據處理結果,并且等待下次訪問使用。在日長開發有很多場合,有一些數據量不是很大,不會經常改動,并且訪問非常頻繁。但是由于受限于硬盤IO的性能或者遠程...
摘要:緩存總體可分為兩種集中式緩存和分布式緩存集中式緩存與分布式緩存的區別其實就在于集中與非集中的概念,其對象可能是服務器內存條硬盤等。內存條版本緩存集中在一臺服務器的一條內存條上,為集中式緩存。 背景 緩存的主要作用是暫時在內存中保存業務系統的數據處理結果,并且等待下次訪問使用。在日長開發有很多場合,有一些數據量不是很大,不會經常改動,并且訪問非常頻繁。但是由于受限于硬盤IO的性能或者遠程...
摘要:日期和時間處理日期和時間的函數庫。使用中可觀察序列,創建異步基于事件應用程序的函數庫。為分布式系統提供延遲和容錯處理。發布使用本機格式分發應用程序的工具。將程序資源和打包成和的本機文件。圖像處理用來幫助創建評估或操作圖形的函數庫。 好資源要分享原文 譯者 唐尤華 翻譯自 github akullpp 構建 這里搜集了用來構建應用程序的工具。 Apache Maven:Mave...
閱讀 2879·2021-11-24 09:39
閱讀 3130·2021-11-19 10:00
閱讀 1535·2021-10-27 14:17
閱讀 1811·2021-10-14 09:43
閱讀 961·2021-09-03 10:30
閱讀 3413·2019-08-30 15:54
閱讀 2728·2019-08-30 13:05
閱讀 2006·2019-08-30 11:02