List数据去重的4种有效方法

使用java8新特性stream进行List去重 ( distinct()方法**)**

java 复制代码
public static List<String> delRepeat(List<String> list) {
     List<String> myList = list.stream().distinct().collect(Collectors.toList());
     return myList ;
}

借助Set的特性进行去重set和list转换去重

java 复制代码
/**
     * 去除重复数据
     * 由于Set的无序性,不会保持原来顺序
     * @param list
     */
    public static List<String> list distinct(List<String> list) {
        final boolean sta = null != list && list.size() > 0;
        List doubleList= new ArrayList();
        if (sta) {
            Set set = new HashSet();
            set.addAll(list);
            doubleList.addAll(set);
        }
        return doubleList;
    }

遍历List集合,将元素添加到另一个List集合中

java 复制代码
public static List<String> delRepeat(List<String> list) {
      List<String> listNew = new ArrayList<String>();
      for (String str : list) {
           if (!listNew.contains(str)) {
               listNew.add(str);
           }
       }
      return listNew ;
}

利用set集合特性保持顺序一致去重

java 复制代码
// Set去重并保持原先顺序的两种方法
   public static void delRepeat(List<String> list) {
       //方法一
       List<String> listNew = new ArrayList<String>(new TreeSet<String>(list));
       //方法二
       List<String> listNew2 = new ArrayList<String>(new LinkedHashSet<String>(list));
   }
相关推荐
LuminousCPP40 分钟前
数据结构 - 排序(二):快速排序从错误初版到优化版|双指针划分 + 三数取中 + 小区间插入优化
c语言·数据结构·笔记·算法·排序算法
hansang_IR1 小时前
【题解】P9753 [CSP-S 2023] 消消乐
数据结构·c++·算法
shehuiyuelaiyuehao1 小时前
算法40,模拟运算,替换所有的问号
数据结构·算法·leetcode
YSL0701241 小时前
OpenCode保姆级安装教程
数据结构
晴天的雨.9922 小时前
[C++算法]快乐数
数据结构·c++·算法
影视飓风TIM2 小时前
C++11 核心新特性完整梳理
数据结构·c++·算法
晴天的雨.9922 小时前
[C++]算法双指针 复写0
数据结构·c++·算法
mmmmath_33 小时前
LeetCode.438.找到字符串中所有字母异位词
数据结构·算法·leetcode
码少女3 小时前
数据结构——堆排序
数据结构
淡海水14 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable