Java中List列表去重有序和無序的6種方法
前置知識
正式開始之前,先來搞懂兩組概念:無序集合和有序集合 & 無序和有序。因?yàn)榻酉聛淼姆椒▽?shí)現(xiàn)中,會反復(fù)提及這兩組概念,所以有必要在正式開始之前,先把它們搞清楚。
無序集合
無序集合是指,數(shù)據(jù)讀取的順序和數(shù)據(jù)插入的順序是不一致的。例如,插入集合的順序是:1、5、3、7,而集合的讀取順序竟然是:1、3、5、7。
有序集合
有序集合的概念和無序集合的概念正好相反,它是指集合的讀取順序和插入順序是一致的。例如,插入數(shù)據(jù)的順序是:1、5、3、7,那么讀取的順序也是:1、5、3、7。
有序和無序
通過上面的無序集合和有序集合,我們可以得出有序和無序的概念。 有序指的是數(shù)據(jù)的排列順序和讀取順序符合我們的預(yù)期就叫做有序。而無序指的是數(shù)據(jù)的排列順序和讀取順序不符合我們的預(yù)期就叫做無序。
PS:如果對于有序和無序的概念不是很清楚也沒關(guān)系,通過下面的事例,我們可以進(jìn)一步的理解它們的含義。
待去重列表
// 列表
List<String> list = new ArrayList<>();
list.add("Tom");
list.add("Jack");
list.add("Steve");
list.add("Tom");
System.out.println(list);
// [Tom, Jack, Steve, Tom]
HashSet去重(不保證順序)
// 去重 Set<String> set = new HashSet<>(list); List<String> newList = new ArrayList<>(set); System.out.println(newList); // [Tom, Steve, Jack]
TreeSet去重(不保證順序)
// 去重 Set<String> set = new TreeSet<>(list); List<String> newList = new ArrayList<>(set); System.out.println(newList); // [Jack, Steve, Tom]
LinkedHashSet去重(保證順序)
// 去重 Set<String> set = new LinkedHashSet<>(list); List<String> newList = new ArrayList<>(set); System.out.println(newList); // [Tom, Jack, Steve]
遍歷List去重(保證順序)
// 去重
List<String> newList = new ArrayList<>();
for (String value : list) {
if(!newList.contains(value)){
newList.add(value);
}
}
System.out.println(newList);
// [Tom, Jack, Steve]
Java8中Stream流處理(保證順序)
// 去重 List<String> newList = list.stream().distinct().collect(Collectors.toList()); System.out.println(newList); // [Tom, Jack, Steve]
參考文章
到此這篇關(guān)于Java中List列表去重有序和無序的6種方法的文章就介紹到這了,更多相關(guān)Java中List列表去重內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot集成JSR303參數(shù)校驗(yàn)的方法實(shí)現(xiàn)
這篇文章主要介紹了Springboot集成JSR303參數(shù)校驗(yàn)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
java?面向?qū)ο蟠a塊及不同位置對屬性賦值的執(zhí)行順序
這篇文章主要介紹了java面向?qū)ο蟠a塊及不同位置對屬性賦值的執(zhí)行順序,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
SpringBoot 內(nèi)置 CollectionUtil用法實(shí)戰(zhàn)指南
文章介紹了SpringBoot中自帶的CollectionUtil類,包括判空、轉(zhuǎn)換、合并、匹配和兜底功能,并通過實(shí)戰(zhàn)例子詳細(xì)展示了這些功能的應(yīng)用場景和優(yōu)勢,感興趣的朋友跟隨小編一起看看吧2025-12-12
Spring Boot 約定大于配置之如何實(shí)現(xiàn)自定義配置
本文介紹了SpringBoot的“約定大于配置”理念以及如何實(shí)現(xiàn)自定義配置,通過實(shí)現(xiàn)接口和添加@Configuration注解,開發(fā)者可以靈活地?cái)U(kuò)展和定制SpringBoot的默認(rèn)行為,感興趣的朋友一起看看吧2025-03-03
SpringBoot登錄驗(yàn)證token攔截器的實(shí)現(xiàn)
本文主要介紹了SpringBoot登錄驗(yàn)證token攔截器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

