使用比较器的nulls对具有null值的列表进行排序

你好朋友,

在本教程中,我们将看到如何使用Java 8 Comparator.nullsFirst在列表中的项目很少为空时如何对项目列表进行排序,以便将null视为列表中的最小元素。

–什么是比较器
– nullsFirst方法在Comparator中做什么
–排序具有非空名称的字符串列表 –不使用nullsFirst排序具有名称和Null的字符串列表 –通过使用nullsFirst方法对列表进行排序来解决上述问题 –对不包含空值的自定义对象列表进行排序 –在不使用nullsFirst的情况下对具有null的Custom对象列表进行排序 –通过使用nullsFirst方法对列表进行排序来解决上述问题 –排序雇员姓名为空的列表

比较器是一个FunctionalInterface,具有以下抽象方法

int比较(T
o1,T
o2);

因此,如果要排序,请说出您的列表。您可以创建一个实现Comparator接口的compare方法的类,其中可以定义排序的逻辑,然后将此比较器传递给list.sort()方法,然后它将根据您的排序定义的逻辑。

另外,您可以将lambda函数(实现Comparator的compare方法)传递给list.sort()方法,而不是创建一个单独的类来实现Comparator接口。

nullsFirst方法在Comparator中做什么?

在Java 8中,Comparator接口中添加了许多默认和静态方法。

nullsFirst是Comparator接口中定义的静态方法之一,具有以下签名:

上市
静态 <T> Comparator <T> nullsFirst(Comparator <?
超级 T> 比较器)

那怎么办呢?

–返回零友好的比较器,该比较器认为null小于非null。

–当两个对象均为空时,它们被视为相等。

–当两者都不为null时,将指定的比较器作为参数传递给nullsFirst方法,以确定排序顺序

–当指定的比较器为null时,返回的比较器将所有非null值视为相等。

要了解nullsFirst的用法,让我们尝试对具有雇员姓名的String列表进行排序,

–首先没有空值

–然后使用空值但不使用nullsFirst

–然后使用null值和nullsFirst

–然后,我们将对自定义Employee对象执行上述步骤
–然后,如果自定义对象中需要根据其进行排序的属性之一为空,那么我们将看到该情况

对具有非空名称的字符串列表进行排序

 package com.blogspot.javasolutionsguide;  import java.util.Arrays;  import java.util.List;  import java.util.Comparator;  public class ComparatorTestWithListOfNamesWithoutNulls { 
  public static void main(String[] args) { 
     List<String> names = Arrays.asList( "Gaurav" , "Tendulkar" , "Suresh" , "Rohit" , "Bumrah" ); 
     System.out.println( "Before Sorting:" ); 
     names.forEach(System.out ::println); 
     names.sort(Comparator.naturalOrder()); 
     System.out.println( "After Sorting:" ); 
     names.forEach(System.out ::println); 
  } 
 } 

这是输出:

排序之前:

高拉夫

滕杜尔卡

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值