Java List 集合如何去除null元素
List集合去除null元素
使用 for 循環(huán)處理集合
思路:
這種處理方式是把要處理的集合進行遍歷,取出其中不為空的元素,添加到新的集合中
public static <T> List<T> removeNull(List<? extends T> oldList) {
? ? // 臨時集合
? ? List<T> listTemp = new ArrayList();
? ? for (int i = 0;i < oldList.size(); i++) {
? ? ?// 保存不為空的元素
? ? ? if (oldList.get(i) != null) {
? ? ? ? listTemp.add(oldList.get(i));
? ? ? }
? ? }
? ? return listTemp;?
}使用系統(tǒng)API
集合空元素的處理,api 有直接處理的方法,使用的是迭代器,本質(zhì)上還是 for 循環(huán)的思想
public static <T> List<T> removeNull(List<? extends T> oldList) {
? ? // 你沒有看錯,真的是有 1 行代碼就實現(xiàn)了
? ? oldList.removeAll(Collections.singleton(null));?
? ? return (List<T>) oldList; ?
}對比
相同較大數(shù)據(jù)量,第一種方法要比第二種稍微快一點,但優(yōu)勢并不明顯,上萬條數(shù)據(jù)才幾十毫秒的差別,很明顯,第二種處理只用了一行代碼就搞定,推薦使用第二種方式處理
java集合去空(list去空)
今天新任職一家公司,
下面是自己寫的集合去空
? public static void main(String[] args) {
? ? ? ? List<String> list = Arrays.asList("ye", "chuan", null);
? ? ? ? List<String> collect = list.stream().map(e -> {
? ? ? ? ? ? if (e == null) {
? ? ? ? ? ? ? ? return null;
? ? ? ? ? ? }
? ? ? ? ? ? return e;
? ? ? ? }).collect(Collectors.toList());
? ? ? ? System.out.println(collect);//[ye, chuan, null]
? ? ? collect.removeAll(Collections.singleton(null));
? ? ? ? System.out.println(collect);//[ye, chuan]
? ? }下面是公司十幾年技術(shù)大牛寫的集合去空
?public static void main(String[] args) {
? ? ? ? List<String> list = Arrays.asList("ye", "chuan", null);
? ? ? ? List<String> collect = list.stream().map(e -> {
? ? ? ? ? ? if (e == null) {
? ? ? ? ? ? ? ? return null;
? ? ? ? ? ? }
? ? ? ? ? ? return e;
? ? ? ? }).filter(Objects::nonNull).collect(Collectors.toList());
? ? ? ? System.out.println(collect);//[ye, chuan]
? ? }其實感覺都差不多,但是還是感覺自己的代碼不如別人的,不知道為什么
意志以為流的.filter方法是過濾自己想要的數(shù)據(jù),原來可以去除不想要的數(shù)據(jù)
感覺自己對jdk8流的寫法運用少了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security基于JWT實現(xiàn)SSO單點登錄詳解
這篇文章主要介紹了Spring Security基于JWT實現(xiàn)SSO單點登錄詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Mybatis框架之模板方法模式(Template Method Pattern)的實現(xiàn)
MyBatis中使用了模板方法模式來控制SQL語句的執(zhí)行流程,本文主要介紹了Mybatis框架之模板方法模式(Template Method Pattern)的實現(xiàn),需要的朋友們下面隨著小編來一起學習學習吧2024-11-11
SpringMVC實現(xiàn)參數(shù)校驗配置方法
這篇文章主要介紹了SpringMVC實現(xiàn)參數(shù)校驗的配置方式,Spring MVC會拋出MethodArgumentNotValidException異常,并將錯誤信息綁定到相應的字段上,感興趣的朋友跟隨小編一起看看吧2024-03-03

