1. 程式人生 > 實用技巧 >Js中Symbol物件

Js中Symbol物件

lambda四大內建核心函式式介面:

Consumer<T> :消費性介面

  void accept(T t);

Suppiler<T>:供給性介面

  T get();

Function<T,R>:函式型介面

  R apply(T t);

Predicate<T> :斷言型介面

  boolean test(T t);

時間和日期得處理:

1.LocalDate LocalTime localDateTime

得到當前得時間

2、Instant

時間戳偏移量距離我們得時間是8,獲取得是UTC時區

3、Duration

計算倆個時間之間得間隔

4、Period

計算倆個日期之間得間隔

流的操作(Stream)

流得三個步驟:

建立流:

  建立方式:

  陣列得話用Arrarys.asList作為list或者直接用

 Arrays.stream(employees)

,然後變成集合用.stream().如果是集合得話直接用.stream();

  

  //通過Collection系列提供Stream  和裡面的.stream方法
        List<String > strings=new ArrayList<>();
        Stream<String> stringStream=strings.stream();

        
//通過Arrarys裡面的靜態方法stream Employee[] employees=new Employee[10]; Stream<Employee> employees1= Arrays.stream(employees); //通過Stream中的of方法 Stream<String > stringStream1=Stream.of("dsag","gfdgfh","uerbg"); //建立無限流 Stream<Integer> stream=Stream.iterate(2
,(x)->x+2); stream.limit(10).forEach(System.out::println);

中間操作:

篩選與切片:

filter:接受lambda,從流中排除某些元素;

limit:截斷流,使其元素不超過給定數量

skip(n)跳過元素,返回一個扔掉了前n個元素得流。若流中元素不足n個,則返回一個空流,與limit(n)互補;

distinct :篩選,通過流所生成得元素得hashCode和equals去除重複元素。

map :對映,接受lambda,將元素轉化成其他形式或者提取資訊,接受一個函式作為引數,該函式會被應用到每個元素上,並將其對映成一個新的元素;(用map把要的項提取出來,不是過濾,過濾不會提取某一項出來)

flatMap: 接受一個函式作為引數,將每個值都換成另一個流,然後將所有流連線成一個流;

sort() 自然排序

sort(Comparator com)--定製排序.

(中間操作得話返回得式一個流,但是沒有)

終止操作:

reduce():歸約,reduce(T identity,BinaryOperator)/reduce(BinaryOperator)可以將流中元素反覆結合起來,得到一個值。reduce(Double::sum)

collect():收集,將流轉化為其他形式,接受一個Collector介面得實現,用於給Stream中元素做彙總得方法。

Collectors.求和得、平均數得、最大值,最小值、總數得,轉換成list得,轉化成map得。都有對應得方法。.foreach對其中得每一個進行操作。

groupingBy: 分組,一個引數就是分組,倆個引數,第二個引數是進一步分組。

然後Collectors.summarzingdouble/int()這個用變數接了之後又求求和得、平均數得、最大值,最小值、總數得方法在。

Collectors.joining: 連線