当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Comparator comparingLong()用法及代码示例


Java中Comparator接口的compareLong(java.util.function.ToLongFunction)方法接受一个函数作为参数,该参数从类型T中提取一个长排序键,然后返回一个与该排序键进行比较的Comparator。指定的函数也可以序列化。

用法:

static <T> Comparator<T> 
    comparingLong(ToLongFunction <T> keyExtractor)

参数:此方法接受单个参数keyExtractor,该参数用于提取长排序键。


返回值:此方法返回一个比较器,该比较器通过提取的键进行比较

异常:如果参数为null,则此方法将引发NullPolongerException。

下面的程序演示了compareingLong(java.util.function.ToLongFunction)方法:
示例1:

// Java program to demonstrate Comparator 
// comparingLong(ToLongFunction)  method 
  
import java.util.Arrays; 
import java.util.Collections; 
import java.util.Comparator; 
import java.util.List; 
public class GFG { 
    public static void main(String[] args) 
    { 
  
        // create some user objects 
        User u1 = new User("Aaman", 25724474); 
        User u2 = new User("Joyita", 2262848); 
        User u3 = new User("Suvam", 2824444); 
        User u4 = new User("mahafuj", 2544244); 
  
        // before sort 
        List<User> list = Arrays.asList(u2, u1, u4, u3); 
        System.out.println("Before Sort:"); 
        list.forEach(user -> System.out.println(user)); 
  
        Collections.sort(list, 
                         Comparator.comparingLong( 
                             User::getregistrationId)); 
        System.out.println("\nAfterSort:"); 
        list.forEach(user -> System.out.println(user)); 
    } 
} 
  
class User implements Comparable<User> { 
    public String name; 
    public long registrationId; 
  
    public User(String name, long registrationId) 
    { 
        this.name = name; 
        this.registrationId = registrationId; 
    } 
  
    public int compareTo(User u1) 
    { 
        return name.compareTo(u1.name); 
    } 
  
    public String getName() 
    { 
        return name; 
    } 
  
    public void setName(String name) 
    { 
        this.name = name; 
    } 
  
    public long getregistrationId() 
    { 
        return registrationId; 
    } 
  
    public void setregistrationId(long registrationId) 
    { 
        this.registrationId = registrationId; 
    } 
  
    @Override
    public String toString() 
    { 
        return "User [name=" + name 
            + ", registrationId="
            + registrationId + "]"; 
    } 
}

IDE的控制台上打印的输出如下所示。
输出:

示例2:

// Java program to demonstrate Comparator 
// comparingLong(ToLongFunction)  method 
  
import java.util.Arrays; 
import java.util.Collections; 
import java.util.Comparator; 
import java.util.List; 
public class GFG { 
    public static void main(String[] args) 
    { 
  
        // before sort 
        List<Order> list = Arrays.asList( 
            new Order("A382y482y48", 3204355), 
            new Order("Vvekhfbkje2", 2425355), 
            new Order("efkhfbekjfbe", 1345435), 
            new Order("bhdhdfaddvad", 2305535), 
            new Order("abkasbcjabjc", 1005454)); 
        System.out.println("Before Sort:"); 
        list.forEach(order -> System.out.println(order)); 
  
        Collections.sort(list, 
                         Comparator.comparingLong( 
                             Order::getValue)); 
        System.out.println("\nAfter Sort:"); 
        list.forEach(order -> System.out.println(order)); 
    } 
} 
  
class Order implements Comparable<Order> { 
    public String orderNo; 
    public long value; 
  
    public int compareTo(Order o1) 
    { 
        return orderNo.compareTo(o1.orderNo); 
    } 
  
    public Order(String orderNo, long value) 
    { 
        super(); 
        this.orderNo = orderNo; 
        this.value = value; 
    } 
  
    @Override
    public String toString() 
    { 
        return "Order [orderNo=" + orderNo 
            + ", value=" + value + "]"; 
    } 
  
    public String getOrderNo() 
    { 
        return orderNo; 
    } 
  
    public void setOrderNo(String orderNo) 
    { 
        this.orderNo = orderNo; 
    } 
  
    public long getValue() 
    { 
        return value; 
    } 
  
    public void setValue(long value) 
    { 
        this.value = value; 
    } 
}

控制台上打印的输出如下所示。
输出:

参考文献: https://docs.oracle.com/javase/10/docs/api/java/util/Comparator.html#comparingLong(java.util.function.ToLongFunction)



相关用法


注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 Comparator comparingLong() method in Java with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。