最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中List集合去重常見的幾種方法總結(jié)

 更新時間:2025年07月23日 09:46:34   作者:藤原とラふ店丶  
在Java編程中List集合是一種常用的數(shù)據(jù)結(jié)構(gòu),它允許我們存儲和操作一組有序的對象,這篇文章主要給大家介紹了關(guān)于java中List集合去重常見的幾種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在 Java 里,有多種方法可以對 List 集合進行去重操作,下面為你詳細(xì)介紹常見的幾種方法:

1. 使用LinkedHashSet去重

LinkedHashSetSet 接口的一個實現(xiàn)類,它可以保證元素的插入順序,并且不允許有重復(fù)元素。

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;

public class ListDeduplication {
    public static <T> List<T> deduplicateUsingLinkedHashSet(List<T> list) {
        return new ArrayList<>(new LinkedHashSet<>(list));
    }

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(4);
        List<Integer> deduplicatedList = deduplicateUsingLinkedHashSet(list);
        System.out.println(deduplicatedList);
    }
}

在上述代碼中,deduplicateUsingLinkedHashSet 方法接收一個 List 集合作為參數(shù),先把這個 List 集合轉(zhuǎn)換為 LinkedHashSet,由于 LinkedHashSet 會自動去除重復(fù)元素,然后再將 LinkedHashSet 轉(zhuǎn)換回 List 集合。

2. 使用 Java 8 Stream API 去重

Java 8 引入的 Stream API 提供了 distinct() 方法,能夠去除流中的重復(fù)元素。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class ListDeduplicationWithStream {
    public static <T> List<T> deduplicateUsingStream(List<T> list) {
        return list.stream().distinct().collect(Collectors.toList());
    }

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(4);
        List<Integer> deduplicatedList = deduplicateUsingStream(list);
        System.out.println(deduplicatedList);
    }
}

deduplicateUsingStream 方法借助 stream() 方法將 List 集合轉(zhuǎn)換為流,接著使用 distinct() 方法去除重復(fù)元素,最后使用 collect(Collectors.toList()) 方法將流轉(zhuǎn)換回 List 集合。

3. 手動遍歷去重

通過手動遍歷 List 集合,把不重復(fù)的元素添加到新的 List 集合中。

import java.util.ArrayList;
import java.util.List;

public class ManualListDeduplication {
    public static <T> List<T> deduplicateManually(List<T> list) {
        List<T> result = new ArrayList<>();
        for (T item : list) {
            if (!result.contains(item)) {
                result.add(item);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(4);
        List<Integer> deduplicatedList = deduplicateManually(list);
        System.out.println(deduplicatedList);
    }
}

deduplicateManually 方法遍歷輸入的 List 集合,利用 contains() 方法檢查新的 List 集合中是否已經(jīng)存在該元素,如果不存在則添加到新的 List 集合中。

方法比較

  • LinkedHashSet 方法:實現(xiàn)簡單,能保證元素的插入順序,時間復(fù)雜度為 O(n)O(n)O(n)。
  • Stream API 方法:代碼簡潔,可讀性高,適合處理復(fù)雜的流操作,但在性能上可能略遜于 LinkedHashSet 方法。
  • 手動遍歷方法:實現(xiàn)簡單,但時間復(fù)雜度為 O(n2)O(n^2)O(n2),在處理大規(guī)模數(shù)據(jù)時性能較差。

總結(jié)

到此這篇關(guān)于java中List集合去重常見的幾種方法的文章就介紹到這了,更多相關(guān)java List集合去重內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot(cloud)自動裝配bean找不到類型的問題

    SpringBoot(cloud)自動裝配bean找不到類型的問題

    這篇文章主要介紹了SpringBoot(cloud)自動裝配bean找不到類型的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Spring Cloud 部署時使用 Kubernetes 作為注冊中心和配置中心的方法

    Spring Cloud 部署時使用 Kubernetes 作為注冊中心和配置中

    Spring Cloud Kubernetes提供了使用Kubernete本地服務(wù)的Spring Cloud通用接口實現(xiàn),這篇文章主要介紹了Spring Cloud 部署時如何使用 Kubernetes 作為注冊中心和配置中心,需要的朋友可以參考下
    2024-05-05
  • java異常處理throws完成異常拋出詳解

    java異常處理throws完成異常拋出詳解

    這篇文章主要介紹了java異常處理中throws完成異常拋出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家學(xué)有所得多多進步
    2021-10-10
  • Spring Cloud中使用Feign,@RequestBody無法繼承的解決方案

    Spring Cloud中使用Feign,@RequestBody無法繼承的解決方案

    這篇文章主要介紹了Spring Cloud中使用Feign,@RequestBody無法繼承的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java多線程中的CountDownLatch詳細(xì)解讀

    Java多線程中的CountDownLatch詳細(xì)解讀

    這篇文章主要介紹了Java多線程中的CountDownLatch詳細(xì)解讀,一個同步輔助類,在完成一組正在其他線程中執(zhí)行的操作之前,它允許一個或多個線程一直等待,用給定的計數(shù) 初始化 CountDownLatch,需要的朋友可以參考下
    2023-11-11
  • 教你如何使用idea管理docker

    教你如何使用idea管理docker

    其實idea也提供了docker的管理功能,比如查看容器列表,啟動容器,停止容器等,本文來看下如何管理本地的docker?daemon和遠(yuǎn)程的dockers?daemon,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 詳解springmvc攔截器攔截靜態(tài)資源

    詳解springmvc攔截器攔截靜態(tài)資源

    本篇文章主要介紹了詳解springmvc攔截器攔截靜態(tài)資源,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Java中自定義注解介紹與使用場景詳解

    Java中自定義注解介紹與使用場景詳解

    最近有所了解到自定義注解的應(yīng)用,因此學(xué)習(xí)了一下,下面這篇文章主要給大家介紹了關(guān)于Java中自定義注解介紹與使用場景的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • SpringBoot請求映射的五種優(yōu)化方式小結(jié)

    SpringBoot請求映射的五種優(yōu)化方式小結(jié)

    在Spring?Boot應(yīng)用開發(fā)中,請求映射(Request?Mapping)是將HTTP請求路由到相應(yīng)控制器方法的核心機制,合理優(yōu)化請求映射不僅可以提升應(yīng)用性能,還能改善代碼結(jié)構(gòu),增強API的可維護性和可擴展性,本文將介紹5種Spring?Boot請求映射優(yōu)化方式,需要的朋友可以參考下
    2025-06-06
  • 使用springboot aop來實現(xiàn)讀寫分離和事物配置

    使用springboot aop來實現(xiàn)讀寫分離和事物配置

    這篇文章主要介紹了使用springboot aop來實現(xiàn)讀寫分離和事物配置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論

怀仁县| 喀喇沁旗| 襄垣县| 呼玛县| 南开区| 辽中县| 樟树市| 林周县| 安西县| 泰顺县| 会昌县| 来宾市| 万荣县| 宕昌县| 特克斯县| 五华县| 大邑县| 大渡口区| 夏河县| 乐都县| 江口县| 阳春市| 上林县| 北流市| 晋江市| 沙雅县| 永登县| 高淳县| 惠州市| 南开区| 新密市| 裕民县| 南昌市| 砚山县| 阜城县| 湖北省| 渭南市| 包头市| 将乐县| 弋阳县| 永顺县|