How to handle nulls when using Java collection sort

后端 未结 6 2134
离开以前
离开以前 2020-12-29 19:39

When using Collection.sort in Java what should I return when one of the inner objects is null

Example:

Collections.sort(list, new Comparator

        
6条回答
  •  南笙
    南笙 (楼主)
    2020-12-29 20:39

    Depending on whether the object is null, or the content of the object is null.

    The object is null:

        import static java.util.Comparator.*;
    
        List listOfData = Arrays.asList(
               new Data("foo"),
               null,
               new Data("bar"),
               new Data("nyu"));
    
        listOfData.sort(nullsFirst(comparing(Data::getValue)));
        listOfData.forEach(System.out::println);
        //OUTPUT:
        // null
        // Data(bar)
        // Data(foo)
        // Data(nyu)
    

    The content of the object is null:

        List listOfData = Arrays.asList(
               new Data("foo"),
               new Data(null),
               new Data("bar"),
               new Data("nyu"));
    
    
        listOfData.sort(nullsFirst(
             comparing(Data::getValue, nullsFirst(naturalOrder()))));
    
        listOfData.forEach(System.out::println);
        //OUTPUT:
        // Data(null)
        // Data(bar)
        // Data(foo)
        // Data(nyu)
    

提交回复
热议问题