list去重 distinct

list去重 distinct总结下。1.使用java8新特性stream进行List去重publicstaticList<String>delRepeat(List<String>list){List<String>myList=listAll.stream().distinct().collect(Collectors.toList());returnmyList;}2.双重for循环去重(不推荐使用,速度太慢)实际是使用lis…

大家好,又见面了,我是你们的朋友全栈君。

总结下。

1. 使用java8新特性stream进行List去重

public static List<String> delRepeat(List<String> list) {

     List<String> myList = listAll.stream().distinct().collect(Collectors.toList());
     return myList ;
}
 

2.双重for循环去重 (不推荐使用,速度太慢)

实际是使用list自身方法remove()方法。 

        for (int i = 0; i < list.size(); i++) {

            for (int j = 0; j < list.size(); ) {

                if (i != j && list.get(i) == list.get(j)) {

                    list.remove(j);
                } else {

                    j++;
                }
            }
        }

3.set集合判断去重

不打乱顺序

A  // 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));
   }

B
Set set1 = new HashSet(); 
List newList1 = new ArrayList(); 
for (Integer integer : list) { 
if(set1.add(integer)) { 
newList1.add(integer); 

 

打乱顺序

     /**
     * 去除重复数据
     * 由于Set的无序性,不会保持原来顺序
     * @param list
     */
    public static List<Map<String, Object>> distinct(List<Map<String, Object>> list) {

        final boolean sta = null != list && list.size() > 0;
        if (sta) {

            Set set = new HashSet();
            List doubleList= new ArrayList();
            set.addAll(list);
            doubleList.addAll(set2);
            return doubleList;
        }
        return null;
    }
 

4.遍历后判断赋给另一个list集合 

List newList2 = new ArrayList(); 
for (Integer integer : list) { 
if(!newList2.contains(integer)){ 
newList2.add(integer); 

5.

Set set2 = new HashSet(); 
List newList3 = new ArrayList(); 
set2.addAll(list); 
newList3.addAll(set2); 
System.out.println(“set和list转换去重:”+newList3);

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142635.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安装tensorflow GPU版本–tensorflow-gpu版本与CUDA版本对应关系(持续更新,目前到TF2.7)「建议收藏」

    安装tensorflow GPU版本–tensorflow-gpu版本与CUDA版本对应关系(持续更新,目前到TF2.7)「建议收藏」一、WIndows安装GPU版本tensorflow注意一下几个问题一般就不会出错(1)确定自己要安装哪个版本的tensorflow-gpu;(1)根据自己要装的tensorflow-gpu版本确定要下载的CUDA版本;(2)根据要安装的CUDA版本确定要下载的Cudnn版本。二、tensorflow-gpu版本与CUDA版本对应关系不同版本的tensorflow-gpu与CUDA对应关…

    2022年5月16日
    556
  • PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 

    PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 

    2021年10月10日
    45
  • 几大工作流引擎对比图_工作流引擎框架

    几大工作流引擎对比图_工作流引擎框架纵观jBPM:从jBPM3到jBPM5以及Activiti5:http://www.infoq.com/cn/articles/rhjbpm5activiti5工作流引擎选择(为何使用activ

    2022年8月2日
    7
  • 大数据平台建设

    大数据平台建设分布式系统基础架构Hadoopauthor:time:2018-12-12分布式系统基础架构HadoopHadoop详细介绍Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem…

    2022年4月30日
    33
  • Pytest(17)运行未提交的git(pytest-picked)

    Pytest(17)运行未提交的git(pytest-picked)前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年7月31日
    5
  • 常用Java编程软件有哪些[通俗易懂]

    常用Java编程软件有哪些[通俗易懂]很多想学Java的人想知道常用的Java编程软件有哪些,毕竟只有掌握软件才能更好的工作。然而,只掌握软件工具并不够,你还需要具备一定的知识基础,更要熟练掌握各个软件的应用,常用的Java编程软件有哪些?1、IntelliJIDEAIntelliJIDEA是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说

    2022年7月7日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号