雖然List集合在正常使用過程中不會添加NULL值作為元素,但為了代碼的健壯性,在遍歷獲取元素時進行判斷更佳。在編寫代碼時,判斷NullPointerException(簡稱NPE)非常重要。
數據准備如下:
List<Integer> list = new ArrayList<>(); list.add(1); list.add(5); list.add(13); list.add(null); list.stream().forEach(item -> System.out.println(item.toString()));
那么在打印時會出現空指針異常。
1)第一種方式:使用 for 循環處理集合
把要處理的集合進行遍歷,取出其中不為空的元素,添加到新的集合中,封裝成一個方法:
public static <T> List<T> removeNull(List<? extends T> oldList) { List<T> listTemp = new ArrayList(); for (T t : oldList) { if (t != null) { listTemp.add(t); } } return listTemp; }
這種方式較為簡單,在遍歷前調用此方法即可,但需要遍歷元素刪除NULL值
list = removeNull(list);
2)第一種方式:使用系統 api Collections.singleton()
也是在遍歷前直接刪除NULL值
list.removeAll(Collections.singleton(null));
java.util.Collections.singleton()說明:java自帶的方法,返回只包含特定對象的集合,集合size為1。也就是說,上述在刪除NULL值時將NULL放入一個集合中,再使用removeAll方法刪除其所有的NULL值。