介紹的Java 8新特點(diǎn) |奧遠(yuǎn)科技是專注于信息化建設(shè)與互聯(lián)網(wǎng)產(chǎn)品開發(fā)的高新科技企業(yè),主要服務(wù)于百?gòu)?qiáng)企業(yè)、上市公司、大型集團(tuán)網(wǎng)站建設(shè)。承接大型電商網(wǎng)站、復(fù)雜功能型網(wǎng)站、APP、微信、小程序,oa辦公管理系統(tǒng),ERP管理系統(tǒng)開發(fā)。為客戶提供一站式網(wǎng)絡(luò)營(yíng)銷解決方案,全國(guó)統(tǒng)一客服熱線:4000-880-989。 "> 介紹的Java 8新特點(diǎn) |>介紹的Java 8新特點(diǎn) ">

李采潭一级毛片高清中文字幕,亚洲欧洲久久精品,人人插人人舔,91视频专区,杨幂不雅视频bt,美女视频 新婚之夜,日本美女在线视频网站免费

技術(shù)中心

這里象征著我們的態(tài)度和能力

>介紹的Java 8新特點(diǎn)
作者:中國(guó)IT實(shí)驗(yàn)室    來(lái)源:中國(guó)IT實(shí)驗(yàn)室    發(fā)布時(shí)間:2012-09-14      瀏覽次數(shù):12470
分享到:
歡迎進(jìn)入Java社區(qū)論壇,與200萬(wàn)技術(shù)人員互動(dòng)交流 >>進(jìn)入
    Java 8將支持Lambda功能,盡管該規(guī)范還在不斷的變化,但是Java 8的開發(fā)版已經(jīng)實(shí)現(xiàn)了對(duì)Lambda的支持。本文章將帶你熟悉Lambda 語(yǔ)法,以及使用集合API 中的Lambda 以及相關(guān)的語(yǔ)言增強(qiáng),本文所有的代碼都是在JDK 8 Lambda build b39 編譯。
   
    功能接口:只包含一個(gè)方法的接口被稱為功能接口,Lambda 表達(dá)式用用于任何功能接口適用的地方。函數(shù)集合:Java 8 的類庫(kù)包含一個(gè)新的包java.util.functions ,這個(gè)包中有很多新的功能接口,這些接口可與集合API 一起使用。
   
    java.util.functions.Predicate;
   
    使用謂詞(Predicate) 來(lái)篩選集合:
   
    List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
   
    List<String> filteredNames = names.filter(e -> e.length() >= 4) .into(new ArrayList<String>());
   
    for (String name : filteredNames) {
   
    System.out.println(name);  }
   
    這里我們有兩個(gè)新方法:
   
    Iterable<T> filter(Predicate<? super T>) 用于獲取元素滿足某個(gè)謂詞返回true 的結(jié)果
   
    <A extends Fillable<? super T》 A into(A) 將用返回的結(jié)果填充ArrayList
   
    java.util.functions.Block我們可使用一個(gè)新的迭代器方法來(lái)替換for 循環(huán)void forEach(Block<? super T>):
   
    List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
   
    names .filter(e -> e.length() >= 4)
   
    .forEach(e -> { System.out.println(e); });
   
    forEach() 方法是internal iteration 的一個(gè)實(shí)例:迭代過程在Iterable 和Block 內(nèi)部進(jìn)行,每次可訪問一個(gè)元素。
   
    最后的結(jié)果就是用更少的代碼來(lái)處理集合:
   
    List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
   
    names.mapped(e -> { return e.length();
   
    }) .asIterable() // returns an Iterable of BiValue elements
   
    // an elements key is the persons name, its value is the string length.filter(e -> e.getValue() >= 4)。sorted((a, b) -> a.getValue() - b.getValue()) .forEach(e -> { System.out.println(e.getKey() + + e.getValue()); }); 這樣做的優(yōu)點(diǎn)是:元素在需要的時(shí)候才進(jìn)行計(jì)算如果我們?nèi)∫粋€(gè)上千個(gè)元素的集合的前三條時(shí),其他元素就不會(huì)被映射鼓勵(lì)使用方法鏈我們無(wú)需才存儲(chǔ)中間結(jié)果來(lái)構(gòu)建新的集合內(nèi)部迭代過程因此大多數(shù)細(xì)節(jié)。
   
    例如,我們可以通過下面代碼來(lái)并行map() 操作
   
    writing myCollection.parallel()。map(e ?> e.length())。
   
    方法引用:我們可通過:: 語(yǔ)法來(lái)引用某個(gè)方法。方法引用被認(rèn)為是跟Lambda 表達(dá)式一樣的,可用于功能接口所適用的地方。
   
    我們可以引用一個(gè)靜態(tài)方法:
   
    executorService.submit(MethodReference::sayHello);
   
    private static void sayHello() {System.out.println("hello");  } 或者是一個(gè)實(shí)例的方法:
   
    Arrays.asList("Alice", "Bob", "Charlie", "Dave")。forEach(System.out::println); 我們也可以創(chuàng)建工程方法并將構(gòu)造器引用賦值給java.util.functions.Factory:
   
    Factory<Biscuit> biscuitFactory = Biscuit::new;
   
    Biscuit biscuit = biscuitFactory.make(); 最后,我們創(chuàng)建一個(gè)引用到隨意實(shí)例的例子:
   
    interface Accessor<BEAN, PROPERTY> {
   
    PROPERTY access(BEAN bean);  }
   
    public static void main(String[] args) {
   
    Address address = new Address("29 Acacia Road", "Tunbridge Wells");
   
    Accessor<Address, String> accessor = Address::getCity;
   
    System.out.println(accessor.access(address));  }
   
    這里我們無(wú)需綁定方法引用到某個(gè)實(shí)例,我們直接將實(shí)例做為功能接口的參數(shù)進(jìn)行傳遞。

[1] [2] 下一頁(yè)

?2008-2022 CORPORATION ALL Rights Reserved. 昆明奧遠(yuǎn)科技有限公司版權(quán)所有 滇ICP備09003328號(hào)-1 滇公網(wǎng)安備 53011102000818號(hào) 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證號(hào):滇B2-20110045
昆明那家網(wǎng)絡(luò)公司好,新媒體運(yùn)營(yíng),網(wǎng)站優(yōu)化,網(wǎng)絡(luò)推廣,網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站推廣,云南網(wǎng)站公司,昆明新媒體公司,云南網(wǎng)紅主播,昆明SEO公司,昆明網(wǎng)站建設(shè),昆明網(wǎng)絡(luò)推廣,昆明網(wǎng)站優(yōu)化,昆明網(wǎng)站推廣,紅河網(wǎng)站建設(shè),大理網(wǎng)絡(luò)公司,曲靖網(wǎng)絡(luò)公司,麗江網(wǎng)站設(shè)計(jì),昭通網(wǎng)絡(luò)公司,保山大數(shù)據(jù)服務(wù),智慧高速建設(shè),智慧校園服務(wù),云南IDC服務(wù)商,網(wǎng)絡(luò)安全測(cè)評(píng),等保測(cè)評(píng),網(wǎng)站關(guān)鍵詞排名優(yōu)化服務(wù),服務(wù)客戶盡超2000余家,一切盡在奧遠(yuǎn)科技,服務(wù)電話:13888956730