在Java中,sorted()
函數(shù)是用于對集合(如List、Set等)進(jìn)行排序的。但是,當(dāng)集合中包含空值(null)時,使用sorted()
函數(shù)可能會拋出NullPointerException
。為了避免這個問題,你可以使用Comparator
來自定義排序規(guī)則,以便在處理空值時不會拋出異常。
以下是一個示例,展示了如何使用Comparator
處理空值:
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", null, "orange");
// 使用Comparator處理空值
List<String> sortedList = list.stream()
.sorted(Comparator.nullsFirst(String::compareTo))
.collect(Collectors.toList());
System.out.println(sortedList);
}
}
在這個示例中,我們使用Comparator.nullsFirst()
方法創(chuàng)建一個Comparator
,它會將空值(null)視為最小值。然后,我們將這個Comparator
傳遞給sorted()
函數(shù),以便在排序時處理空值。運行這段代碼,你會看到輸出結(jié)果如下:
[null, apple, banana, orange]
這樣,我們就成功地使用sorted()
函數(shù)處理了包含空值的集合。如果你希望將空值視為最大值,可以使用Comparator.nullsLast()
方法。