當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Collectors minBy(Comparator comparator)用法及代碼示例


CollectorminBy(Comparator <?super T>comparator)用於根據作為參數傳遞的comparator查找元素。它返回一個Collector,該Collector根據給定的Comparator(描述為Optional <T>)產生最小的元素。

用法:

public static 
    <T> Collector<T, ?, Optional<T>> 
        minBy(Comparator<? super T> comparator)

其中使用的術語如下:


  • 接口Collector<T,A,R>:一種可變的歸約運算,它將輸入元素累積到一個可變結果容器中,在處理完所有輸入元素之後,可以有選擇地將累積的結果轉換為最終表示形式。還原操作可以順序或並行執行。
    • T:歸約運算的輸入元素的類型。
    • A:歸約運算的可變累積類型。
    • R:歸約運算的結果類型。
  • Optional: 可以包含或不包含非null值的容器對象。如果存在值,則isPresent()將返回true,而get()將返回該值。
  • comparator:比較函數,對某些對象集合施加總排序。comparator可以傳遞給排序方法,以實現對排序順序的精確控製。comparator還可以用於控製某些數據結構(例如排序的集合或排序的Map)的順序,或為沒有自然順序的對象集合提供排序。

參數:此方法采用Comparator類型的參數comparator,該comparator是一種比較函數,對某些對象集合施加總排序。comparator可以傳遞給排序方法,以實現對排序順序的精確控製。comparator還可以用於控製某些數據結構(例如排序的集合或排序的Map)的順序,或為沒有自然順序的對象集合提供排序。

返回值:此方法返回一個Collector,該Collector根據傳遞的comparator產生最小值。

下麵是一些示例來說明minBy()的實現:

程序1:演示使用naturalOrder()的minBy()

// Java code to show the implementation of 
// Collectors minBy(Comparator comparator) function 
  
import java.util.Comparator; 
import java.util.Optional; 
import java.util.stream.Collectors; 
import java.util.stream.Stream; 
  
class GFG { 
    // Driver code 
    public static void main(String[] args) 
    { 
        // creating a Stream of strings 
        Stream<String> s = Stream.of("2", "3", "4", "5"); 
  
        // using Collectors minBy(Comparator comparator) 
        // and finding the minimum element 
        // in reverse order 
        Optional<String> obj = s 
                                   .collect(Collectors 
                                                .minBy(Comparator 
                                                           .naturalOrder())); 
  
        // if present, print the element 
        // else print the message 
        if (obj.isPresent()) { 
            System.out.println(obj.get()); 
        } 
        else { 
            System.out.println("no value"); 
        } 
    } 
}
輸出:
2

程序2:演示使用reverseOrder()的minBy()

// Java code to show the implementation of 
// Collectors minBy(Comparator comparator) function 
  
import java.util.Comparator; 
import java.util.Optional; 
import java.util.stream.Collectors; 
import java.util.stream.Stream; 
  
class GFG { 
    // Driver code 
    public static void main(String[] args) 
    { 
        // creating a Stream of strings 
        Stream<String> s = Stream.of("2", "3", "4", "5"); 
  
        // using Collectors minBy(Comparator comparator) 
        // and finding the minimum element 
        // in reverse order 
        Optional<String> obj = s 
                                   .collect(Collectors 
                                                .minBy(Comparator 
                                                           .reverseOrder())); 
  
        // if present, print the element 
        // else print the message 
        if (obj.isPresent()) { 
            System.out.println(obj.get()); 
        } 
        else { 
            System.out.println("no value"); 
        } 
    } 
}
輸出:
5

程序3:演示不傳遞任何值時的minBy()。

// Java code to show the implementation of 
// Collectors minBy(Comparator comparator) function 
  
import java.util.Comparator; 
import java.util.Optional; 
import java.util.stream.Collectors; 
import java.util.stream.Stream; 
  
class GFG { 
  
    // Driver code 
    public static void main(String[] args) 
    { 
  
        // creating a Stream of strings 
        Stream<String> s = Stream.of(); 
  
        // using Collectors minBy(Comparator comparator) 
        // and finding the minimum element 
        // in reverse order 
        Optional<String> obj = s 
                                   .collect(Collectors 
                                                .minBy(Comparator 
                                                           .reverseOrder())); 
  
        // if present, print the element 
        // else print the message 
        if (obj.isPresent()) { 
            System.out.println(obj.get()); 
        } 
        else { 
            System.out.println("no value"); 
        } 
    } 
}
輸出:
no value


相關用法


注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 Java | Collectors minBy(Comparator comparator) with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。