最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java匿名內(nèi)部類和Lambda(->) 的多種寫法總結(jié)

 更新時間:2022年07月29日 14:31:53   作者:草木之花  
這篇文章主要和大家分享一下Java匿名內(nèi)部類和Lambda(->) 的多種寫法,文中的示例代碼講解詳細,對我們學(xué)習Java有一定幫助,需要的可以先看一下

引入: 最近使用到 Arrays.sort(); 看了他的重載方法(試著模仿一下)

就以這個玩出了許多的方式;如下:自定義排序

首先 寫了個冒泡排序(備用)

		//給一個integres 的數(shù)組, 然后再給個 Comparator的接口 c
	/**
     *
     * @param  integers 給一個 integres 的數(shù)組,作為要排序的數(shù)組
     * @param c  接受一個 Comparator 接口 ,然后使用Comparator 重寫的 compare 方法
     */
 public static void bubbleSort(Integer[] integers,Comparator c ){

        int temp;
        
        for(int i = 0 ; i < integers.length-1;i++){
            for(int j = 0 ; j < integers.length -1 -i;j++){
            
			//判斷是從大到小還是從小到大
                if(c.compare(integers[j] , integers[j+1]) > 0){
                    
                    //慢
                    /*integers[j] += integers[j+1];
                    integers[j+1] = integers[j] - integers[j+1];
                    integers[j] = integers[j] - integers[j+1];*/

                    //更快
                    temp = integers[j];
                    integers[j] = integers[j+1];
                    integers[j+1] = temp;

                }
            }
        }


    }

認識幾種寫法

第一種寫法

    //第一種寫法 匿名類寫法
        bubbleSort(number, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return (int)o1 - (int)o2;
            }
        });

第二種寫法(Lambda)

        // 接受2個參數(shù)(數(shù)字),并返回他們的差值  
        // (x, y) -> x – y  
        //第二種寫法
        bubbleSort(number, (Object o1 ,Object o2)-> (int)o1 - (int)o2);

第三種寫法(Lambda)

        /*第三種寫法
        * 1.先把Object 轉(zhuǎn)為 int 然后執(zhí)行以下操作
        * Comparator.comparingInt((Object o) -> (int) o);
        * 
        * 2.會返回 (c1, c2)  -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2));
        * 會讀取兩個對象 keyExtractor.applyAsInt(c1) , keyExtractor.applyAsInt(c2)
        * 
        * 3.(Comparator.comparingInt((Object o) -> (int) o)))讀取一個(keyExtractor.applyAsInt(c1))后返回到這里(Comparator.comparingInt((Object o) -> (int) o))),然后再讀取一個(keyExtractor.applyAsInt(c2))
        * 
        * 4.兩個了之后就開始比較Integer.compare
        * public static int compare(int x, int y) {
        *        return (x < y) ? -1 : ((x == y) ? 0 : 1);
        *    }
        *5.最后經(jīng)過三元運算符后 返回對應(yīng)的數(shù)
        */
        
        bubbleSort(number, Comparator.comparingInt((Object o) -> (int) o));

然后開始使用

import java.util.Arrays;
import java.util.Comparator;

public class Test {
    public static void main(String[] args) {
        Integer number[] = {1,4,2,23,32,43};
		//第一種寫法
        bubbleSort(number, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return (int)o1 - (int)o2;
            }
        });
        
		//第二種寫法
        //1.先把Object 轉(zhuǎn)為 int 然后執(zhí)行以下操作
        //Comparator.comparingInt((Object o) -> (int) o);
        //2.會進去 (c1, c2) -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2));
        //然后會讀取兩個對象keyExtractor.applyAsInt(c1) , keyExtractor.applyAsInt(c2)
        //3.Comparator.comparingInt((Object o) -> (int) o)) 讀取一個后返回到這里,然后再讀取一個
        //4.兩個了之后就開始比較Integer.compare
        // public static int compare(int x, int y) {
        //        return (x < y) ? -1 : ((x == y) ? 0 : 1);
        //    }
        //5.返回 最后的數(shù)
        bubbleSort(number, Comparator.comparingInt((Object o) -> (int) o));

		//第三種寫法
        bubbleSort(number, (Object o1 ,Object o2)-> (int)o1 - (int)o2);


        System.out.println("排序后的數(shù)組"+Arrays.toString(number));
        
   		 }
   		 

   //給一個integres 的數(shù)組, 然后再給個 Comparator的接口 c
	/**
     *
     * @param  integers 給一個 integres 的數(shù)組,作為要排序的數(shù)組
     * @param c  接受一個 Comparator 接口 ,然后使用Comparator 重寫的 compare 方法
     */
 public static void bubbleSort(Integer[] integers,Comparator c ){

        int temp;
        
        for(int i = 0 ; i < integers.length-1;i++){
            for(int j = 0 ; j < integers.length -1 -i;j++){
            
			//判斷是從大到小還是從小到大
                if(c.compare(integers[j] , integers[j+1]) > 0){
                    
                    //慢
                    /*integers[j] += integers[j+1];
                    integers[j+1] = integers[j] - integers[j+1];
                    integers[j] = integers[j] - integers[j+1];*/

                    //更快
                    temp = integers[j];
                    integers[j] = integers[j+1];
                    integers[j+1] = temp;

                }
            }
        }


   	 }
    }

到此這篇關(guān)于Java匿名內(nèi)部類和Lambda(->) 的多種寫法總結(jié)的文章就介紹到這了,更多相關(guān)Java匿名內(nèi)部類 Lambda內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 求1000階乘的結(jié)果末尾有多少個0

    求1000階乘的結(jié)果末尾有多少個0

    題目是:求1000!的結(jié)果末尾有多少個0,解題思路:兩個素數(shù)2、5,相乘即可得到10,我們可以認為,有多少組2、5,結(jié)尾就有多少個0,下面是代碼,需要的朋友可以參考下
    2014-02-02
  • 詳解springboot整合ueditor踩過的坑

    詳解springboot整合ueditor踩過的坑

    這篇文章主要介紹了詳解springboot整合ueditor踩過的坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-06-06
  • Maven工程打包jar的多種方式

    Maven工程打包jar的多種方式

    Maven打包一般可以生成兩種包一種是可以直接運行的包,一種是依賴包(只是編譯包),這篇文章主要介紹了Maven工程打包jar的多種方式步驟詳解,需要的朋友可以參考下
    2023-04-04
  • Java 中實現(xiàn)異步的多種方式

    Java 中實現(xiàn)異步的多種方式

    文章介紹了Java中實現(xiàn)異步處理的幾種常見方式,每種方式都有其特點和適用場景,通過選擇合適的異步處理方式,可以提高程序的性能和可維護性,感興趣的朋友一起看看吧
    2025-03-03
  • Java 文件傳輸助手的實現(xiàn)(單機版)

    Java 文件傳輸助手的實現(xiàn)(單機版)

    這篇文章主要介紹了Java 文件傳輸助手的實現(xiàn)(單機版),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-05-05
  • java連接數(shù)據(jù)庫的5種方式解讀

    java連接數(shù)據(jù)庫的5種方式解讀

    這篇文章主要介紹了java連接數(shù)據(jù)庫的5種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-04-04
  • Spring?Cloud?Gateway動態(tài)路由Apollo實現(xiàn)詳解

    Spring?Cloud?Gateway動態(tài)路由Apollo實現(xiàn)詳解

    這篇文章主要為大家介紹了Spring?Cloud?Gateway動態(tài)路由通過Apollo實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Spring如何在一個事務(wù)中開啟另一個事務(wù)

    Spring如何在一個事務(wù)中開啟另一個事務(wù)

    這篇文章主要介紹了Spring如何在一個事務(wù)中開啟另一個事務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot讀取resource文件代碼實例

    SpringBoot讀取resource文件代碼實例

    這篇文章主要介紹了SpringBoot讀取resource文件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-04-04
  • java貪吃蛇游戲?qū)崿F(xiàn)代碼

    java貪吃蛇游戲?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細介紹了java貪吃蛇游戲?qū)崿F(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評論

普兰县| 盐源县| 临泽县| 北碚区| 汾西县| 修文县| 祥云县| 黔东| 双辽市| 阆中市| 贵阳市| 西乡县| 扎囊县| 兰州市| 福泉市| 乐山市| 新安县| 通榆县| 乌审旗| 大化| 子洲县| 都匀市| 崇义县| 万荣县| 蒙自县| 东山县| 吉木萨尔县| 阜城县| 永登县| 肇东市| 双柏县| 绥棱县| 华坪县| 常熟市| 北海市| 嘉祥县| 北京市| 泉州市| 称多县| 云安县| 滨海县|