成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

集合框架的擴(kuò)展 guava(Guava對JDK集合的擴(kuò)展)

YorkChen / 1238人閱讀

摘要:一,對集合設(shè)置只讀對比查看初始化對只讀設(shè)置安全可靠,并且相對簡單二,過濾器,更好的與集合類解耦,查看集合中的回文單詞,字符注意如果一個(gè)類只使用一次,并且這個(gè)類的對象也只是用一次,那么我們就是用匿名內(nèi)部類工具過濾器函數(shù)式編程的靜態(tài)初始化找出回

一,對集合設(shè)置只讀

 List list 
            = new ArrayList();
       list.add("a");
       list.add("b");
       list.add("c");
       //對比查看初始化list grava 對只讀設(shè)置安全可靠,并且相對簡單
       List immutableList = ImmutableList.of("A","B","C");
       immutableList.add("c");
      System.out.println(immutableList);//java.lang.UnsupportedOperationException
    }

二,過濾器,更好的與集合類解耦
1,查看集合中的回文單詞,字符
注意:
如果一個(gè)類只使用一次,并且這個(gè)類 的對象也只是用一次,那么我們就是用匿名內(nèi)部類
工具:Collections2.filter 過濾器

函數(shù)式編程
//List的靜態(tài)初始化 
     List list 
          = Lists.newArrayList("ab","bcb","cd","son","mom");
     //找出回文 mirror words
     //匿名內(nèi)部類的對象:匿名內(nèi)部類,同時(shí)創(chuàng)建類對象
     Collection parlidromeList = Collections2.filter(list, new Predicate(){
        @Override
        public boolean apply(String input) {
            //業(yè)務(wù)邏輯
            return new StringBuilder(input).reverse().toString().equals(input);
        }
     });
     for(String tem:parlidromeList){
         System.out.println(tem);
     }
    }

2,確保容器中字符串的長度不超過5,超過進(jìn)行截取,并且全部大寫

       //組合式函數(shù)編程
       //確保容器中字符串的長度不超過5,超過進(jìn)行截取,并且全部大寫
        List lists = Lists.newArrayList("good","happy","wonderful");
        //確保容器中字符串的長度不超過5,超過進(jìn)行截取
        Function f1 
              = new Function(){
                @Override
                public String apply(String input) {
                    return input.length()>5?input.substring(0,5):input;
                }
        };
        //轉(zhuǎn)成大寫
        Function f2 
          = new Function(){
            @Override
            public String apply(String input) {
                return input.toUpperCase();
         }
    };
    //現(xiàn)在需要將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,添加約束條件(非空,長度驗(yàn)證)

 Set st = Sets.newHashSet();
      //創(chuàng)建約束
      Constraint constraint 
             = new Constraint(){

        @Override
        public String checkElement(String element) {
            //非空驗(yàn)證
            Preconditions.checkNotNull(element);
            //長度驗(yàn)證
            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,集合的操作:交集,差集,并集

Set set1 = 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);
   }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64848.html

相關(guān)文章

  • Java基礎(chǔ)-模塊系統(tǒng)筆記(1)

    摘要:模塊系統(tǒng)的前身是項(xiàng)目。最初,該項(xiàng)目僅僅是為設(shè)計(jì)實(shí)現(xiàn)一個(gè)模塊系統(tǒng)。隨著項(xiàng)目的不斷深入,平臺對標(biāo)準(zhǔn)模塊系統(tǒng)的呼求也日益增長,批準(zhǔn)該項(xiàng)目升級為平臺的一部分,也能服務(wù)于和平臺的需求。自定義的配置,僅包含一組指定的模塊及其所需的模塊。 我的博客 轉(zhuǎn)載請注明原創(chuàng)出處。 序 從Java 9開始,在Java的世界里多了一個(gè)叫模塊(JSR376)的特性。模塊系統(tǒng)的前身是Jigsaw項(xiàng)目。最初,該項(xiàng)目僅...

    learning 評論0 收藏0
  • 集中式內(nèi)存緩存 Guava Cache

    摘要:緩存總體可分為兩種集中式緩存和分布式緩存集中式緩存與分布式緩存的區(qū)別其實(shí)就在于集中與非集中的概念,其對象可能是服務(wù)器內(nèi)存條硬盤等。內(nèi)存條版本緩存集中在一臺服務(wù)器的一條內(nèi)存條上,為集中式緩存。 背景 緩存的主要作用是暫時(shí)在內(nèi)存中保存業(yè)務(wù)系統(tǒng)的數(shù)據(jù)處理結(jié)果,并且等待下次訪問使用。在日長開發(fā)有很多場合,有一些數(shù)據(jù)量不是很大,不會(huì)經(jīng)常改動(dòng),并且訪問非常頻繁。但是由于受限于硬盤IO的性能或者遠(yuǎn)程...

    Dean 評論0 收藏0
  • 集中式內(nèi)存緩存 Guava Cache

    摘要:緩存總體可分為兩種集中式緩存和分布式緩存集中式緩存與分布式緩存的區(qū)別其實(shí)就在于集中與非集中的概念,其對象可能是服務(wù)器內(nèi)存條硬盤等。內(nèi)存條版本緩存集中在一臺服務(wù)器的一條內(nèi)存條上,為集中式緩存。 背景 緩存的主要作用是暫時(shí)在內(nèi)存中保存業(yè)務(wù)系統(tǒng)的數(shù)據(jù)處理結(jié)果,并且等待下次訪問使用。在日長開發(fā)有很多場合,有一些數(shù)據(jù)量不是很大,不會(huì)經(jīng)常改動(dòng),并且訪問非常頻繁。但是由于受限于硬盤IO的性能或者遠(yuǎn)程...

    KitorinZero 評論0 收藏0
  • 國外程序員整理Java資源大全

    摘要:日期和時(shí)間處理日期和時(shí)間的函數(shù)庫。使用中可觀察序列,創(chuàng)建異步基于事件應(yīng)用程序的函數(shù)庫。為分布式系統(tǒng)提供延遲和容錯(cuò)處理。發(fā)布使用本機(jī)格式分發(fā)應(yīng)用程序的工具。將程序資源和打包成和的本機(jī)文件。圖像處理用來幫助創(chuàng)建評估或操作圖形的函數(shù)庫。 好資源要分享原文 譯者 唐尤華 翻譯自 github akullpp 構(gòu)建 這里搜集了用來構(gòu)建應(yīng)用程序的工具。 Apache Maven:Mave...

    chengtao1633 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<