Java中List列表去重有序和無序的6種方法
前置知識
正式開始之前,先來搞懂兩組概念:無序集合和有序集合 & 無序和有序。因為接下來的方法實現(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)系,通過下面的事例,我們可以進一步的理解它們的含義。
待去重列表
// 列表 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)文章
java?CompletableFuture異步任務(wù)編排示例詳解
這篇文章主要為大家介紹了java?CompletableFuture異步任務(wù)編排示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11