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));
   }
相关推荐
睡不醒的kun1 小时前
leetcode算法刷题的第三十四天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
吃着火锅x唱着歌1 小时前
LeetCode 978.最长湍流子数组
数据结构·算法·leetcode
摇滚侠1 小时前
java语言中,list<String>转成字符串,逗号分割;List<Integer>转字符串,逗号分割
java·windows·list
Whisper_long1 小时前
【数据结构】深入理解堆:概念、应用与实现
数据结构
IAtlantiscsdn2 小时前
Redis7底层数据结构解析
前端·数据结构·bootstrap
我星期八休息2 小时前
深入理解跳表(Skip List):原理、实现与应用
开发语言·数据结构·人工智能·python·算法·list
掘根2 小时前
【CMake】List
windows·microsoft·list
和编程干到底3 小时前
数据结构 栈和队列、树
数据结构·算法
爱编程的化学家3 小时前
代码随想录算法训练营第十一天--二叉树2 || 226.翻转二叉树 / 101.对称二叉树 / 104.二叉树的最大深度 / 111.二叉树的最小深度
数据结构·c++·算法·leetcode·二叉树·代码随想录
shan&cen5 小时前
Day04 前缀和&差分 1109. 航班预订统计 、304. 二维区域和检索 - 矩阵不可变
java·数据结构·算法