java8函數式編程

Java8最大的變化是引入了Lambda表達式。java

Lambda表達式:一種緊湊的、傳遞行爲的方式。dom

Lambda語法

包含三個部分函數

  1. 一個括號內用逗號分隔的形式參數,參數是函數式接口裏面方法的參數
  2. 一個箭頭符號:->
  3. 方法體,能夠是表達式和代碼塊,方法體函數式接口裏面方法的實現,若是是代碼塊,則必須用{}來包裹起來,且須要一個return 返回值,但有個例外,若函數式接口裏面方法返回值是void,則無需{}

List遍歷改造

本來的方法遍歷Listspa

private void testPrint(List<String> list) {   
        for (String str : list) {
          Systrm.out.println(str); 
        }
    }

改造後code

public void listPrint( List<String> list) {
        list.forEach(str -> System.out.println(str));  // list.forEach(System.out::println);
    }

統計個數接口

改造前it

public void testCount (List < String > list) {
            int count = 0;
            for (String str : list) {
                if (str.contains("xiao")) {
                    count++;
                }
            }
            System.out.println(count);
        }

改造後io

public void testCount(List<String> list) {
        long count = list.stream().filter(str -> str.contains("xiao")).count();
        System.out.println(count);
    }

 

Stream的相關方法

Stream的生成:一、Stream接口 二、Collection接口class

一、Stream接口test

Stream.of("1","3").forEach(System.out::println);
Stream.generate(()->Math.random()).limit(3).forEach(System.out::println);
Stream.iterate(1,i->i+1).limit(10).forEach(System.out::println);

二、Collection接口,使用stream()方法

list.stream()

 

Stream的使用:

一、distinct: 對於Stream中包含的元素進行去重操做(去重邏輯依賴元素的equals方法),新生成的Stream中沒有重複的元素; 

相關文章
相關標籤/搜索