精华内容
下载资源
问答
  • 1.使用LinkedHashSet删除arraylist中的重复数据场景:考虑数据顺序、不允许添加重复数据LinkedHashSet是在一ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:删除重复数据保持添加到其中的数据...

    1.使用LinkedHashSet删除arraylist中的重复数据

    场景:考虑数据顺序、不允许添加重复数据

    LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:

    • 删除重复数据
    • 保持添加到其中的数据的顺序

    Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList是包含整数的arraylist,其中一些是重复的数字。

    例如1,3和5.我们将列表添加到LinkedHashSet,然后将内容返回到列表中。结果arraylist没有重复的整数。

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.LinkedHashSet;
     
    public class ArrayListExample{
        public static void main(String[] args){
     
            ArrayList numbersList = new ArrayList<>(Arrays.asList(1123334566678));
            System.out.println(numbersList);
            LinkedHashSet hashSet = new LinkedHashSet<>(numbersList);
            ArrayList listWithoutDuplicates = new ArrayList<>(hashSet);
            System.out.println(listWithoutDuplicates);
        }
    }

    输出结果

    [1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8]
     
    [1, 2, 3, 4, 5, 6, 7, 8]

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

    场景: 数据量很大,考虑性能、效率。用java8流操作还是很快的

    要从arraylist中删除重复项,我们也可以使用java 8新特性Stream流。使用steam的distinct()方法返回一个由不同数据组成的流,通过对象的equals()方法进行比较。

    收集所有区域数据List使用Collectors.toList()。

    Java程序,用于在不使用Set的情况下从java中的arraylist中删除重复项。

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;
     
    public class ArrayListExample{
        public static void main(String[] args){
     
            ArrayList numbersList = new ArrayList<>(Arrays.asList(1123334566678));
            System.out.println(numbersList);
            List listWithoutDuplicates = numbersList.stream().distinct().collect(Collectors.toList());
            System.out.println(listWithoutDuplicates);
        }
    }

    输出结果

    [1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8]
     
    [1, 2, 3, 4, 5, 6, 7, 8]

    3.利用HashSet不能添加重复数据的特性 

    场景:不考虑添加的顺序

    private static void removeDuplicate(List list) {
        HashSet set = new HashSet(list.size());
        List result = new ArrayList(list.size());for (String str : list) {if (set.add(str)) {
                result.add(str);
            }
        }
        list.clear();
        list.addAll(result);
    }

    4.利用List的contains方法循环遍历,重新排序,只添加一次数据,避免重复:

    场景:需要一个新集合、数据量较小。性能稍差

    private static void removeDuplicate(List list) {
        List result = new ArrayList(list.size());for (String str : list) {if (!result.contains(str)) {
                result.add(str);
            }
        }
        list.clear();
        list.addAll(result);
    }

    5.双重for循环去重场景:和第四个区别不大。性能稍差

    for (
    喜欢公众号的朋友可以关注点赞点再看d971f81c1610c046dd2751c0a9a083d1.gife3fa9eb63486bb909ec4d1c7bfd9f518.png

    扫码关注

    edbf3e3be75739eb1108d502d95b07a4.png397a29643efc4acf924470be3827393c.png

    公众号:   Javatwjd

                博客:http://g6e.cn/R6RYZu

    0496767d-aa2c-eb11-8da9-e4434bdf6706.svg

    球分享

    0596767d-aa2c-eb11-8da9-e4434bdf6706.svg

    球点赞

    f89d7195938a9b4a14ebf0612643fb32.gif

    球在看

    展开全文
  • SQL语句distinct多个字段去重问题

    万次阅读 多人点赞 2018-09-13 14:52:25
    select distinct name, id from table 或者 select name,id from table group by name 像这样是错误的写法,distinct不起作用的 曲线救国写法: select name,id from table where id in (  select min(id) ...

    经典例子

    select distinct name, id from table

    或者

    select name,id from table group by name

    像这样是错误的写法,distinct不起作用的

    曲线救国写法:

    select name,id from table  where id in (

          select min(id) from table group by name

    )

    思想:将需要去重的字段添加到where条件中,取出唯一id

              然后就可以获得去重之后的两个字段了

              不过我这边是你需要去重一个字段,展示两个字段的情况

     

    还可以看如下文章

    https://blog.csdn.net/yz357823669/article/details/78794050

    https://blog.csdn.net/djun100/article/details/10452165

    展开全文
  • distinct多字段去重查询问题

    万次阅读 2018-07-22 16:39:28
    对于很多初学者来说distinct的单字段去重是很容易理解和使用的,但是有些初学者就会有这样的疑问,如果distinct放在多个字段前面作用会是怎样的呢?这里举个简单易懂的例子: 多字段去重sql语句:select distinct...

    对于很多初学者来说distinct的单字段去重是很容易理解和使用的,但是有些初学者就会有这样的疑问,如果distinct放在多个字段前面作用会是怎样的呢?这里举个简单易懂的例子:

    多字段去重sql语句:select distinct ID,AA,BB from tName

    上述语句是查找字段ID+AA+BB组合成的一行在整张表中都不重复的记录;

    比如某张表中有下面三条记录:
    1,'a','a'
    1,'a','b'
    1,'a','b'
    执行该语句进行去重查询:select   distinct   ID,AA,BB   from   tName 结果肯定只返回上面2行,将在表中重复的第三整行过滤掉了。

    展开全文
  • -16 0 现在要对表数据去重,留下一行,修改如下: select * from ti_vw_boss where transactionid in (select min(TRANSACTIONID) from ti_vw_boss group by dn,dn_type,productid,src_spid); 结果: transactionid ...

    --select * from ti_vw_boss结果:

    transactionid dn dn_type productid src_spid opt_type opt_time state

    100000000000011213 158550570010PIBPXXT100118510 0 18-2月 -16 0

    100000000000011244 158550570010PIBPXXT100118510 0 18-2月 -16 0

    现在要对表数据去重,留下一行,修改如下:

    select * from ti_vw_boss where transactionid in (select min(TRANSACTIONID) from ti_vw_boss group by dn,dn_type,productid,src_spid);

    结果:

    transactionid dn dn_type productid src_spid opt_type opt_time state

    100000000000011213 158550570010PIBPXXT100118510 0 18-2月 -16 0

    满足要求!

    展开全文
  • oracle distinct多字段去重

    万次阅读 2016-02-19 10:56:26
    现在要对表数据去重,留下一行,修改如下: select * from ti_vw_boss where transactionid in (select min(TRANSACTIONID) from ti_vw_boss group by dn,dn_type,productid,src_spid); 结果: ...
  • sql根据多个字段去重: SELECT title,isbn,author_id ,page_count from dbo.book group by title,isbn,author_id ,page_count 或者: SELECT DISTINCT title,isbn,author_id ,page_count from dbo.book sql根据...
  • 目的:规划项目中,需获取目标地块的用地类型属性详细需求:一个目标地块可能跨不同类型地块,将所有类型都写入目标图层的“用地属性”字段多个类型之间用逗号隔开。如有重复,需去重。数据:目标地块面图层,用地...
  • 若对多字段去重,可使用group分组操作1.field为需要去重的字段,为必须字段。无条件排重db.getCollection("表名").distinct("字段名");2.query为去重的筛选条件,为可选字段。有条件排重db.getCollection("表名"...
  • 怎样对多个字段去重并计数

    千次阅读 2019-04-21 17:26:17
    怎样对多个字段去重并计数
  • java8特性--list集合根据多个字段去重

    万次阅读 多人点赞 2018-05-28 16:02:58
    实体包含多个字段,当其中两个字段相同均相同时,就认为list中的两条记录是一样的,本来想通过分组实现,java8的分组只提供根据一个字段分组,只好另寻他路,java8有一个collectingAndThen可以根据多个字段去重,因为我们的...
  • 多个字段去重后进行求和-SQL

    千次阅读 2018-03-09 14:27:00
    【问题】怎样对多个字段进行分别去重后再对其求和; 【解法】 相当于把多个字段的字符串连接起来: select count(DISTINCT fcode+cast(fread_date as varchar(30))) from my_table ...
  • 建表语句: CREATE TABLE `exec_create` ( `A` varchar(255) DEFAULT NULL, ...其中mysql的distinct可以实现这功能:select count(DISTINCT e),count(DISTINCT c) from exec_create;  
  • select a.*, group_concat(distinct b.attribute_name) from sign_contract_info a left join sign_temp_a...
  • 实体包含多个字段,当其中两个字段相同均相同时,就认为list中的两条记录是一样的,本来想通过分组实现,java8的分组只提供根据一个字段分组,只好另寻他路,java8有一个collectingAndThen可以根据多个字段去重,因为我们的...
  • distinct去重多个字段,其他字段不去重,一起输出 例如: select AA, BB, CC from tableName; 要求是对AA,BB这两个字段都去重,CC是不需要去重的,最后一起输出 求解!!! ...
  • 1.distinct是针对多字段完全一样的去重 ...2.多个字段针对其中一个字段去重: select * from BB_CREDIT_RESULT where rowid in (select max(rowid) from BB_CREDIT_RESULT group by COURSE_ID) ...
  • Oracle 多个字段去重

    千次阅读 2019-05-28 10:36:28
    DISTINCT SUBSTR(d.DEPT_ID, 0, 2) DEPT,d.SECURITY_CHECK --截取前俩位判断去重复 FROM SAF_T_INSPECTION_DEPT d SELECT A .desc_, A .ID_, B.CHECK_TYPE FROM ( SELECT * FROM BDF2_DEPT D ...
  • 问题:distinct 对某一字段去重,返回记录所有字段值,但是记录其它字段也有重复值,导致无法返回。 描述: 在使用mysql时,有时需要查询出某个字段不重复的记录,distinct 关键字可以过滤掉多余的重复记录只保留一...
  • select distinct a.lot,sum(a.qty+0) qty from ( select _lot1 lot,_qty1 qty from middle_box where (_lot1 <> ‘’ and _lot1 is not null) and (_rel = ‘M2032AH005’ or _rel = ‘M2032AH006’ or _rel =...
  • oracle 多个字段 去重

    千次阅读 2012-09-25 17:37:05
    select distinct(字段一||字段二||字段三)   用“||”连接就行
  • 使用Java8的Stream的distinct方法去重,我们的对象需要实现hashcode()和equals()方法。 把学生类修改后如下: public class Student { private Long id; private String name; private int age; private Double ...
  • count('distinct identity') 生成的sql: SELECT COUNT(DISTINCT `identity`) AS think_count FROM `dg_appointment`; 下面是tp6手册内容 我尝试着这样写 发现生成的sql不对 AppointmentModel::distinct(true)-&...
  • Oracle如何实现多个字段去重

    千次阅读 2016-05-08 20:18:29
    我们通常使用distinct关键字来去除重复记录,还有没有其他办法呢?通过查找资料,确认group by也可以,利用rowid也可以实现功能。其中,group by是用来分组统计的,能用distinct的地方就...我们可以看到,就前两个字段
  • Querydsl distinct 多个字段

    千次阅读 2019-12-13 16:32:59
    在 Querydsl 中 使用 distinct 多个字段,进行去重。 代码 SQL SELECT DISTINCT ON (company_id, EXTRACT(MONTH FROM createddt), EXTRACT(YEAR FROM createddt)) id, createddt FROM companystats ORDER ...
  • select 多字段去重

    千次阅读 2017-11-15 15:55:00
    selelct distinct 字段一,字段二,字段三…… from 表 ...如果我们只根据一个字段去重,而打印出其他字段怎么办呢? select 字段一, distinct 字段二 from table 很抱歉,除了错误你什么也得不到,distinc...
  • T-SQL对多个字段去重并计数

    千次阅读 2018-04-16 16:06:51
    定义和用法可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目。语法SELECT COUNT(DISTINCT column(s)) FROM table例子注意:下面的例子仅适用于 ORACLE 和 Microsoft SQL server,不能用于 Microsoft ...
  • t1表的c1,c2字段有唯一索引, create unique index indexname on t1 (c1,c2); ...我实际遇到的是30多个字段,Oracle10g环境,想了解一下创建唯一约束是不是会减少去重的计算量,求各位大大解答!
  • sql distinct去重的 ,当查询多个字段 distinct是为这几个字段的整体去重,可是当我查询多个字段, 但只想去重其中某一个字段, 怎么办

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,899
精华内容 8,759
关键字:

distinct多个字段去重