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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • loadrunner视频教程百度云_loadrunner使用教程图文

    loadrunner视频教程百度云_loadrunner使用教程图文播客视频,java虚拟用户http://www.boobooke.com/v/bbk1900/LR动态链接库小布老师视频:测试工具概述,兼LoadRunner介绍-1-4http://www.boobooke.com/v/bbk1046http://www.boobooke.com/v/bbk1047http://www.boobooke.com/v/

    2022年10月14日
    3
  • set a date for_setcallback

    set a date for_setcallbacksetTimeout只在指定时间后执行一次functionhello(){alert(“hello”);}//使用方法名字执行方法vart1=window.setTimeout(hello,1000);vart2=window.setTimeout(“hello()”,3000);//使用字符串执行方法window.clearTimeout(t1);//去掉定时器setTimeInterval//实时刷新时间单位为毫秒setInterv

    2022年10月5日
    2
  • JavaScript高级程序设计(读书笔记)(七)[通俗易懂]

    JavaScript高级程序设计(读书笔记)(七)[通俗易懂]本笔记汇总了作者认为“JavaScript高级程序设计”这本书的前七章知识重点,仅供参考。第七章函数表达式小结:在JavaScript编程中,函数表达式是一种非常有用的技术。使用函数表达式可以无须对函数命名,从而实现动态编程。匿名函数,也称为拉姆达函数,是一种使用JavaScript函数的强大方式。以下总结了函数表达式的特点。函数表达式不同于函数声明。

    2022年8月20日
    6
  • Ubuntu 安装使用git

    Ubuntu 安装使用git

    2021年6月12日
    91
  • 如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx

    如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx本系列文章假设各位看官对python是足够熟悉的,但却不太了解win32编程。嘛。。其实我也没学过win32编程,脸请各位看官随意招呼。需求:最近因为做课题,要把800个FaceGen软件生成的三维面孔保存成图片,以后不排除每一张面孔还要生成某个特质上连续变化的图片。FaceGen以抽取面孔的特征向量来构建面孔,所以保存的文件相当精简,只需要300字节就能无损保存面孔的全部信息。一般的三维

    2022年5月31日
    70
  • XPS文件怎么打开?可以转成PDF格式吗?

    XPS文件怎么打开?可以转成PDF格式吗?我们在打印文件时经常会遇到和我们保存的格式不一样的情况,为了无法轻易变更档案中的数据,有些朋友就将其保存为xps格式文件。下面就一起来看一下打开xps格式文件和转成PDF的方法。1、如何打开XPS文件目前很多人的电脑系统已更新的WIN10系统,其实win10是自带打开XPS文件功能软件的,操作也很方便。首先点击电脑左下角的开始菜单,在搜索框中输入XPSViewer,并点击运行软件。接着在主界面中选择要打开的文件,即可进行阅读操作。2、如何将XPS转成PDF我们可以使用一些在线转换工具,这样不

    2022年6月4日
    42

发表回复

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

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