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] ? ? }
下面是公司十幾年技術大牛寫的集合去空
?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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Jenkins Host key verification failed問題解決
這篇文章主要介紹了Jenkins Host key verification failed問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11SSH框架網(wǎng)上商城項目第27戰(zhàn)之申請域名空間和項目部署及發(fā)布
這篇文章主要為大家詳細介紹了SSH框架網(wǎng)上商城項目第26戰(zhàn)之申請域名空間和項目部署及發(fā)布,感興趣的小伙伴們可以參考一下2016-06-06SpringCloud輪詢拉取注冊表與服務發(fā)現(xiàn)流程詳解
這篇文章主要介紹了SpringCloud輪詢拉取注冊表與服務發(fā)現(xiàn),現(xiàn)在很多創(chuàng)業(yè)公司都開始往springcloud靠了,可能是由于文檔和組件比較豐富的原因吧,畢竟是一款目前來說比較完善的微服務架構2022-11-11