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));
   }
相关推荐
似水এ᭄往昔7 小时前
【C++】--AVL树的认识和实现
开发语言·数据结构·c++·算法·stl
TL滕8 小时前
从0开始学算法——第十六天(双指针算法)
数据结构·笔记·学习·算法
.小小陈.8 小时前
C++初阶9:list使用攻略
开发语言·c++·学习·list
天赐学c语言8 小时前
12.14 - 搜索旋转排序数组 && 判断两个结构体是否相等
数据结构·c++·算法·leecode
1024肥宅9 小时前
JavaScript 性能与优化:数据结构和算法
前端·数据结构·算法
仰泳的熊猫9 小时前
1112 Stucked Keyboard
数据结构·c++·算法·pat考试
he___H9 小时前
滑动窗口一题
java·数据结构·算法·滑动窗口
AI科技星9 小时前
统一场论质量定义方程:数学验证与应用分析
开发语言·数据结构·经验分享·线性代数·算法
学编程就要猛10 小时前
数据结构初阶:Map和Set接口
数据结构
jianfeng_zhu10 小时前
不带头节点的链式存储实现链栈
数据结构·算法