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

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

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

前言

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

1. 使用LinkedHashSet去重

LinkedHashSetSet 接口的一個(gè)實(shí)現(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 方法接收一個(gè) List 集合作為參數(shù),先把這個(gè) List 集合轉(zhuǎn)換為 LinkedHashSet,由于 LinkedHashSet 會(huì)自動(dòng)去除重復(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. 手動(dòng)遍歷去重

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

總結(jié)

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

相關(guān)文章

最新評(píng)論