日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

guava

發布時間:2024/10/12 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 guava 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.bjsxt.others.guava;import java.util.ArrayList; import java.util.Collections; import java.util.List;import com.google.common.collect.ImmutableList;/*** 只讀設置* @author Administrator**/ public class Demo01 {/*** @param args*/public static void main(String[] args) {List<String> list =new ArrayList<String>();list.add("a");list.add("b");list.add("c");//對原有的list進行包裝,相等于原有List的一個視圖,快照,不夠安全List<String> readList =Collections.unmodifiableList(list);//java.lang.UnsupportedOperationException//readList.add("d");list.add("d"); //改變原有List 視圖也一起改變//對比 查看 初始化List guava對只讀設置 安全可靠,并且相對簡單List<String> immutableList =ImmutableList.of("a", "b", "c"); immutableList.add("d");//java.lang.UnsupportedOperationException }} package com.bjsxt.others.guava;import java.text.SimpleDateFormat; import java.util.Collection; import java.util.List; import java.util.Set;import com.google.common.base.Function; import com.google.common.base.Functions; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import com.google.common.collect.Sets;/*** 函數式編程 :解耦* 1、Predicate * 2、Function* * 工具:Collections2.filter() 過濾器* Collections2.transfer() 轉換* Functions.compose()組合式函數編程* @author Administrator**/ public class Demo02 {/*** @param args*/public static void main(String[] args) {//組合式函數編程//確保容器中的字符串長度不超過5,超過進行截取,后全部大寫List<String> list =Lists.newArrayList("bjsxt","good","happiness");//確保容器中的字符串長度不超過5,超過進行截取Function<String,String> f1 =new Function<String,String>(){@Overridepublic String apply(String input) {return input.length()>5?input.substring(0,5):input;}};//轉成大寫Function<String,String> f2 =new Function<String,String>(){@Overridepublic String apply(String input) {return input.toUpperCase();}};//String =f2(f1(String))Function<String,String> f =Functions.compose(f1, f2);Collection<String> resultCol =Collections2.transform(list, f);for(String temp:resultCol){System.out.println(temp);}}/*** 轉換*/public static void test2(){//類型轉換Set<Long> timeSet =Sets.newHashSet();timeSet.add(10000000L);timeSet.add(99999999999999999L);timeSet.add(2000000000L);Collection<String> timeStrCol =Collections2.transform(timeSet, new Function<Long,String>(){@Overridepublic String apply(Long input) {return new SimpleDateFormat("yyyy-MM-dd").format(input);}});for(String temp:timeStrCol){System.out.println(temp);}}/*** 過濾器*/public static void test1(){//創建List 靜態初始化List<String> list =Lists.newArrayList("moom","son","dad","bjsxt","refer");//找出回文 palindrome backwords mirror words//匿名內部類對象: 匿名內部類,同時創建類對象Collection<String> palindromeList =Collections2.filter(list, new Predicate<String>(){@Overridepublic boolean apply(String input) {//業務邏輯return new StringBuilder(input).reverse().toString().equals(input);}});for(String temp:palindromeList){System.out.println(temp);}}}

?

?

package com.bjsxt.others.guava;import java.util.Set;import com.google.common.base.Preconditions; import com.google.common.collect.Constraint; import com.google.common.collect.Constraints; import com.google.common.collect.Sets;/*** 加入約束條件:非空、長度驗證* Constraint* Preconditions* Constraints* @author Administrator**/ public class Demo03 {/*** @param args*/public static void main(String[] args) {Set<String> sets =Sets.newHashSet();//創建約束Constraint<String> constraint =new Constraint<String>(){@Overridepublic String checkElement(String element) {//非空驗證 Preconditions.checkNotNull(element);//長度驗證 5-20為字符串Preconditions.checkArgument(element.length()>=5 && element.length()<=20);return element;}};Set<String> cs =Constraints.constrainedSet(sets, constraint);//cs.add(null); //java.lang.NullPointerException// cs.add("good"); //java.lang.IllegalArgumentExceptioncs.add("bjsxt");for(String str:cs){System.out.println(str);}}}
package com.bjsxt.others.guava;import java.util.Set;import com.google.common.collect.Sets; import com.google.common.collect.Sets.SetView;/*** 集合的操作:交集、差集、并集* Sets.intersection()* Sets.difference()* Sets.union();* @author Administrator**/ public class Demo04 {/*** @param args*/public static void main(String[] args) {Set<Integer> sets =Sets.newHashSet(1,2,3,4,5,6);Set<Integer> sets2 =Sets.newHashSet(3,4,5,6,7,8,9);//交集System.out.println("交集為:");SetView<Integer> intersection =Sets.intersection(sets, sets2);for(Integer temp:intersection){System.out.println(temp);}//差集System.out.println("差集為:");SetView<Integer> diff =Sets.difference(sets, sets2);for(Integer temp:diff){System.out.println(temp);}//并集System.out.println("并集為:");SetView<Integer> union =Sets.union(sets, sets2);for(Integer temp:union){System.out.println(temp);}}}

?

package com.bjsxt.others.guava;import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap;/*** HashMap 鍵唯一,值可以重復* BiMap:雙向Map(Bidirectional Map ) 鍵與值都不能重復(unique -valued map)* @author Administrator**/ public class Demo07 {/*** @param args*/public static void main(String[] args) {BiMap<String,String> bimap=HashBiMap.create();bimap.put("bjsxt", "bjsxt@sina.com");bimap.put("good","good@qq.com");//通過郵箱找用戶String user =bimap.inverse().get("good@qq.com");System.out.println(user);System.out.println(bimap.inverse().inverse()==bimap);}}

?

?

package com.bjsxt.others.guava;import java.util.Map; import java.util.Set;import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; import com.google.common.collect.Table.Cell; import com.google.common.collect.Tables;/*** 雙鍵的Map -->Table -->rowKey+columnKey+value* 1、方法* 所有的行數據:cellSet()* 所有的學生: rowKeySet()* 所有的課程:columnKeySet()* 所有的成績: values()* 學生對應的課程: rowMap() +get(學生)* row(學生)* 課程對應的學生: columnMap +get(課程)* column(課程)* @author Administrator**/ public class Demo08 {/*** @param args*/public static void main(String[] args) {Table<String,String,Integer> tables=HashBasedTable.create();//測試數據tables.put("a", "javase", 80);tables.put("b", "javase", 90);tables.put("a", "oracle", 100);tables.put("c", "oracle", 95);//所有的行數據Set<Cell<String,String,Integer>> cells =tables.cellSet();for(Cell<String,String,Integer> temp:cells){System.out.println(temp.getRowKey()+"-->"+temp.getColumnKey()+"-->"+temp.getValue());}System.out.println("==========學生查看成績==============");System.out.print("學生\t");//所有的課程Set<String> cours =tables.columnKeySet();for(String t:cours){System.out.print(t+"\t");}System.out.println();//所有的學生Set<String> stus =tables.rowKeySet();for(String stu:stus){System.out.print(stu+"\t");Map<String,Integer> scores =tables.row(stu);for(String c:cours){System.out.print(scores.get(c)+"\t");}System.out.println();}System.out.println("==========課程查看成績==============");System.out.print("課程\t");//所有的學生Set<String> stuSet =tables.rowKeySet();for(String t:stuSet){System.out.print(t+"\t");}System.out.println();//所有的課程Set<String> courSet =tables.columnKeySet();for(String c:courSet){System.out.print(c+"\t");Map<String,Integer> scores =tables.column(c);for(String s:stuSet){System.out.print(scores.get(s)+"\t");}System.out.println();}System.out.println("===========轉換===========");Table<String,String,Integer> tables2 =Tables.transpose(tables);//所有的行數據Set<Cell<String,String,Integer>> cells2 =tables2.cellSet();for(Cell<String,String,Integer> temp:cells2){System.out.println(temp.getRowKey()+"-->"+temp.getColumnKey()+"-->"+temp.getValue());}}}

轉載于:https://www.cnblogs.com/sunhan/p/4003977.html

總結

以上是生活随笔為你收集整理的guava的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。