stream與簡單Lambda的使用

將list集合去空
List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
//.filter(o -> !o.isEmpty)過濾對象是空的蹋岩,collect收集(Collectors.toList)將結果轉化為List
List<String> collect = strings.stream().filter(o -> !o.isEmpty()).collect(Collectors.toList());
'forEach' 來迭代流中的每個數(shù)據(jù)
//生成隨機數(shù)
Random random = new Random();
//.ints().limit(10)生成10個隨機數(shù).forEach遍歷輸出
random.ints().limit(10).forEach(System.out::println);
distinct不同的(去重)
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
//以map的形式映射對象剪个,distinct()去重版确,collect收集(Coolectors.toList)收集轉換成List集合
List<Integer> collect = numbers.stream().map(o -> o*2).distinct().collect(Collectors.toList);
計算是空的集合的個數(shù)
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
 //過濾是空的集合個數(shù)
Long count = strings.stream().filter(0 -> o.isEntry()).count();
對隨機數(shù)進行過濾
Random random = new Random();
random.ints().limit(10).sorted().forEach(System.out::println);

使用lambda表達式

//傳統(tǒng)用法
   String[] atp = {"Rafael Nadal", "Novak Djokovic",
                "Stanislas Wawrinka",
                "David Ferrer","Roger Federer",
                "Andy Murray","Tomas Berdych",
                "Juan Martin Del Potro"};

        List<String> players = Arrays.asList(atp);

        for (String player : players) {
            System.out.println("player:"+player);
        }
 //lambda 表達試以及函數(shù)操作(function operation)
players.forEach((player -> System.out.println(player)));
// 在java8中使用雙冒號操作符(double colon operator)
 players.forEach(System.out::println);
lambda表達式的簡單例子:

// 1. 不需要參數(shù),返回值為 5
() -> 5
 
// 2. 接收一個參數(shù)(數(shù)字類型),返回其2倍的值
x -> 2 * x
 
// 3. 接受2個參數(shù)(數(shù)字),并返回他們的差值
(x, y) -> x – y
 
// 4. 接收2個int型整數(shù),返回他們的和
(int x, int y) -> x + y
 
// 5. 接受一個 string 對象,并在控制臺打印,不返回任何值(看起來像是返回void)
(String s) -> System.out.print(s)
匿名內部類
// 使用匿名內部類
btn.setOnAction(new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent event) {
              System.out.println("Hello World!"); 
          }
    });
 
// 或者使用 lambda expression
btn.setOnAction(event -> System.out.println("Hello World!"));
lambdas 來實現(xiàn) Runnable接口 的示例:
// 1.1使用匿名內部類
new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello world !");
    }
}).start();
 
// 1.2使用 lambda expression
new Thread(() -> System.out.println("Hello world !")).start();
 
// 2.1使用匿名內部類
Runnable race1 = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello world !");
    }
};
 
// 2.2使用 lambda expression
Runnable race2 = () -> System.out.println("Hello world !");
 
// 直接調用 run 方法(沒開新線程哦!)
race1.run();
race2.run();

使用匿名內部類根據(jù)name排序players

  String[] players = {"Rafael Nadal", "Novak Djokovic",
                "Stanislas Wawrinka", "David Ferrer",
                "Roger Federer", "Andy Murray",
                "Tomas Berdych", "Juan Martin Del Potro",
                "Richard Gasquet", "John Isner"};
   //使用匿名內部類根據(jù)name排序players Comparators 比較器
        Arrays.sort(players, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {

                return o1.compareTo(o2);
            }
        });
 //使用lambdas表達式可以通過以下方法實現(xiàn)
        //使用lambda expression 排序players
        Comparator<String> sortByName = ((String o1, String o2) -> (o1.compareTo(o2)));
        Arrays.sort(players,sortByName);

        //也可以采用一下形式
        Arrays.sort(players,((String s1,String s2) -> (s1.compareTo(s2))));
  //使用匿名內部類根據(jù)surname 排序 players
        Arrays.sort(players, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.substring(o1.indexOf(" ")).compareTo(o2.substring(o1.indexOf(" ")));
            }
        });

        //使用lambda 表達式排序忌堂,根據(jù)surname
        Arrays.sort(players,(String s1,String s2) -> (s1.substring(s1.indexOf(" ")).compareTo(s2.substring(s2.indexOf(" ")))));
  //使用匿名內部類根據(jù) name lenght 排序 players

        Arrays.sort(players, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return (o1.length() - o2.length());
            }
        });
//        使用 lambda expression 排序,根據(jù) name lenght
        Arrays.sort(players,(String s1,String s2) -> (s1.length() -s2.length()));

        //根據(jù)最后一個字母排序
        Arrays.sort(players,(String s1, String s2) -> (s1.charAt(s1.length()-1)) - s2.charAt(s2.length()-1));
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末士修,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棋嘲,更是在濱河造成了極大的恐慌,老刑警劉巖沸移,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痪伦,死亡現(xiàn)場離奇詭異侄榴,居然都是意外死亡,警方通過查閱死者的電腦和手機网沾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門辉哥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醋旦,“玉大人饲齐,你說我怎么就攤上這事捂人。” “怎么了饮笛?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脓诡。 經常有香客問我祝谚,道長交惯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮只锻,結果婚禮上齐饮,老公的妹妹穿的比我還像新娘祖驱。我一直安慰自己,他們只是感情好乡洼,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妻怎,像睡著了一般泞歉。 火紅的嫁衣襯著肌膚如雪腰耙。 梳的紋絲不亂的頭發(fā)上挺庞,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天选侨,我揣著相機與錄音援制,去河邊找鬼。 笑死褐墅,一個胖子當著我的面吹牛妥凳,可吹牛的內容都是我干的猾封。 我是一名探鬼主播噪珊,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磷箕,長吁一口氣:“原來是場噩夢啊……” “哼岳枷!你這毒婦竟也來了?” 一聲冷哼從身側響起殿衰,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凯砍,沒想到半個月后悟衩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體座泳,經...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡钳榨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年营罢,在試婚紗的時候發(fā)現(xiàn)自己被綠了饲漾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖勤晚,靈堂內的尸體忽然破棺而出赐写,到底是詐尸還是另有隱情挺邀,我是刑警寧澤端铛,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布禾蚕,位于F島的核電站夕膀,受9級特大地震影響产舞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜耻煤,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一攘已、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦峡眶、人聲如沸辫樱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞎惫。三九已至瓜喇,卻和暖如春乘寒,著一層夾襖步出監(jiān)牢的瞬間伞辛,已是汗流浹背蚤氏。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工佳恬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毁葱,地道東北人倾剿。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親涵妥。 傳聞我的和親對象是個殘疾皇子蓬网,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內容