欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何去除Java中List集合中的重復(fù)數(shù)據(jù)

 更新時間:2020年05月29日 14:17:45   作者:Oraclea  
這篇文章主要介紹了Java中List集合去除重復(fù)數(shù)據(jù)的方法,對大家的工作或?qū)W習(xí)有一定價值,有需求的朋友可以參考下

1.循環(huán)list中的所有元素然后刪除重復(fù)

public class duplicatRemoval {
public static List removeDuplicate(List list){
for(int i=0;i<list. size()-1;i++){
for(int j=list.size()-1;j>i;j--){
if(list. get(j). equals(list.get(i))){
list.remove(j);
}
}
}
return list;
}
}

總結(jié):

兩層循環(huán),外層循環(huán)從第一個元素向最后一個元素循環(huán),內(nèi)層循環(huán)是從最后一個元素向外層循環(huán)元素的當(dāng)前元素循環(huán)。比較兩個元素是否相等,如果相等,移除靠后的元素來進(jìn)行去重。這種方法時間復(fù)雜度大于O(n),小于O(N²)

2.通過HashSet剔除重復(fù)元素

public class duplicatRemoval {
public static List removeDuplicate(List list) {
HashSet hashSet = new HashSet(list) ;
list.clear();
list.addAll(hashSet);
return list;
}
}

總結(jié):

此種方式是利用了Set的特性:元素不可重復(fù),其底層原理是先計算每個對象的hash值,再比較元素值是否相同,如果相同,則保留最新的。

3.刪除ArrayList中重復(fù)元素,保持順序

public class duplicatRemoval {
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet( );
List newList = new ArrayList();
for (Iterator iter = list. iterator(); iter. hasNext();) {
0bject element= iter.next( );
if (set. add( element) )
newList.add( element);
}
list.clear();
list.addAll(newList);
System. out. println(”remove duplicate"+ list);
}
}

4.把list里的對象遍歷一遍,用list.contain(),如果不存在就放入到另外一個list集合中

public class duplicatRemoval {
public static List removeDuplicate(List list){
List listTemp = new ArrayList();
for(int i=0;i<list. size();i++){
if( !listTemp . contains(list.get(i))){
listTemp. add(list.get(i));
}
return listTemp;
}

5.用JDK1.8 Stream中對List進(jìn)行去重:list.stream().distinct();

public class duplicatRemoval {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>( 1000000) ;
for(inti=0;i<10;i++){
list. add(1);
System . out. println(list);
List shortList = removeDuplicate(list);
System . out . println( shortList);
}
@Suppres sWarnings( "rawtypes" )
public static List removeDuplicate(List list){
List newList = (List) list. stream(). distinct( ).collect(Collectors. toList());
return newList ;

首先獲得此list的Stream,然后調(diào)用distinct()方法。Java8中提供流的方式對數(shù)據(jù)進(jìn)行處理,非??欤讓佑玫氖莊orkJoin框架,提供了并行處理,使得多個處理器同時處理流中的數(shù)據(jù),所以耗時非常短。

到此這篇關(guān)于如何去除Java中List集合中的重復(fù)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Java List集合內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java OpenCV圖像處理之背景消除

    Java OpenCV圖像處理之背景消除

    GMM(高斯混合模型)是基于像素樣本統(tǒng)計信息的背景表示方法,利用像素在較長時間內(nèi)大量樣本值的概率密度等統(tǒng)計信息表示別境,然后使用統(tǒng)計差分進(jìn)行目標(biāo)像素判斷達(dá)到預(yù)期效果。本文將利用GMM方法實現(xiàn)圖像背景消除,需要的可以參考一下
    2022-02-02
  • 詳解Spring中的JavaConfig注解

    詳解Spring中的JavaConfig注解

    在開發(fā)Java程序,尤其是Java EE應(yīng)用的時候,總是免不了與各種配置文件打交道。java注解則幫我們使之更整潔,不會配置文件滿天飛了。 下面這篇文章主要介紹了Spring中的JavaConfig注解,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • java 將字符串追加到文件已有內(nèi)容后面的操作

    java 將字符串追加到文件已有內(nèi)容后面的操作

    這篇文章主要介紹了java 將字符串追加到文件已有內(nèi)容后面的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • IDEA編譯時報常量字符串過長的解決辦法

    IDEA編譯時報常量字符串過長的解決辦法

    本文主要介紹了IDEA編譯時報常量字符串過長的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java源碼難點(diǎn)突破Lambda表達(dá)式執(zhí)行原理

    Java源碼難點(diǎn)突破Lambda表達(dá)式執(zhí)行原理

    這篇文章主要為大家介紹了Java難點(diǎn)突破Lambda表達(dá)式執(zhí)行原理分析及示例的實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • java?zxing合成復(fù)雜二維碼圖片示例詳解

    java?zxing合成復(fù)雜二維碼圖片示例詳解

    這篇文章主要為大家介紹了java?zxing合成復(fù)雜二維碼圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java詳細(xì)解析==和equals的區(qū)別

    Java詳細(xì)解析==和equals的區(qū)別

    這篇文章主要介紹了Java中==和equals()的區(qū)別,,==可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中,equals()是方法,只能用于引用數(shù)據(jù)類型,需要的朋友可以參考下
    2022-04-04
  • Java中List排序的3種常見方法總結(jié)

    Java中List排序的3種常見方法總結(jié)

    在Java編程中List對象的排序是一個常見的需求,List接口提供了多種排序方法,這篇文章主要給大家介紹了關(guān)于Java中List排序的3種常見方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 詳解Java七大阻塞隊列之SynchronousQueue

    詳解Java七大阻塞隊列之SynchronousQueue

    SynchronousQueue不需要存儲線程間交換的數(shù)據(jù),它的作用像是一個匹配器,使生產(chǎn)者和消費(fèi)者一一匹配。本文詳細(xì)講解了Java七大阻塞隊列之一SynchronousQueue,需要了解的小伙伴可以參考一下這篇文章
    2021-09-09
  • 基于Java實現(xiàn)抽獎系統(tǒng)

    基于Java實現(xiàn)抽獎系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于Java實現(xiàn)抽獎系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論