亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

  • Spring的自動裝配常用注解詳解

    Spring的自動裝配常用注解詳解

    這篇文章主要介紹了Spring的自動裝配常用注解詳解,自動裝配就是指 Spring 容器在不使用 <constructor-arg> 和<property> 標簽的情況下,可以自動裝配相互協(xié)作的 Bean 之間的關(guān)聯(lián)關(guān)系,將一個 Bean 注入其他 Bean 的 Property 中,需要的朋友可以參考下
    2023-08-08
  • 關(guān)于web項目讀取classpath下面文件的心得分享

    關(guān)于web項目讀取classpath下面文件的心得分享

    這篇文章主要介紹了關(guān)于web項目讀取classpath下面文件的心得,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mybatis-plus雪花算法自動生成機器id原理及源碼

    mybatis-plus雪花算法自動生成機器id原理及源碼

    Mybatis-Plus是一個Mybatis的增強工具,它在Mybatis的基礎(chǔ)上做了增強,卻不做改變,Mybatis-Plus是為簡化開發(fā)、提高開發(fā)效率而生,但它也提供了一些很有意思的插件,比如SQL性能監(jiān)控、樂觀鎖、執(zhí)行分析等,下面一起看看mybatis-plus雪花算法自動生成機器id原理解析
    2021-06-06
  • idea手動刷新git分支的詳細教程

    idea手動刷新git分支的詳細教程

    這篇文章主要介紹了idea手動刷新git分支,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java中static的特點

    Java中static的特點

    本文主要介紹了Java中static的特點。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 使用Jenkins自動化構(gòu)建工具進行敏捷開發(fā)

    使用Jenkins自動化構(gòu)建工具進行敏捷開發(fā)

    這篇文章主要為大家介紹了使用Jenkins自動化構(gòu)建工具進行敏捷開發(fā),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 詳解Spring?@Profile注解的使用和源碼解析

    詳解Spring?@Profile注解的使用和源碼解析

    這篇文章主要將通過源碼帶大家深入了解一下Spring中@Profile注解的原理與使用,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04
  • JAVA如何調(diào)用Shell腳本

    JAVA如何調(diào)用Shell腳本

    本篇文章主要介紹了JAVA如何調(diào)用Shell腳本,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • spring boot 2整合swagger-ui過程解析

    spring boot 2整合swagger-ui過程解析

    這篇文章主要介紹了spring boot 2整合swagger-ui過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java并發(fā)編程之Semaphore詳解

    Java并發(fā)編程之Semaphore詳解

    這篇文章主要介紹了Java并發(fā)編程之Semaphore詳解,Semaphore信號量可以用來控制同時訪問特定資源的線程數(shù)量,常用于限流場景,Semaphore接收一個int整型值,表示 許可證數(shù)量,需要的朋友可以參考下
    2023-11-11

最新評論