`
杨小同
  • 浏览: 596 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

筛选出重复记录

 
阅读更多
1,张三,28
2,李四,35
3,张三,28
4,王五,35
5,张三,28
6,李四,35
7,赵六,28
8,田七,35

package com;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeSet;

public class GetNameTest {
    public static void main(String[] args) {
Map results = new HashMap();
InputStream is = GetNameTest.class.getResourceAsStream("info.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
try {
while((line = br.readLine())!=null){
dealLine(line, results);
}
sortResults(results);
} catch (Exception e) {
e.printStackTrace();
}

}
   
    static class User{
    public String name;
    public Integer value;
    public User(String name,Integer value){
    this.name=name;
    this.value=value;
    }
   
    public boolean equals(Object obj) {
    boolean result = super.equals(obj);
    System.out.println(result);
    return result;
    }
    }
    public static void sortResults(Map results){
    TreeSet sortResults = new TreeSet(
          new Comparator(){

public int compare(Object o1, Object o2) {
User user1=(User)o1;
User user2=(User)o2;
if(user1.value<user2.value){
return -1;
}else if(user1.value>user2.value){
return 1;
}else{
return user1.name.compareTo(user2.name);
}
}
         
          }
    );
    Iterator iterator = results.keySet().iterator();
    while(iterator.hasNext()){
    String name = (String)iterator.next();
    Integer value = (Integer)results.get(name);
    if(value>1){
    sortResults.add(new User(name,value));
    }
    }
    printResults(sortResults);
    }
   
    public static void printResults(TreeSet sortedResults){
    Iterator iterator = sortedResults.iterator();
    while(iterator.hasNext()){
    User user = (User)iterator.next();
    System.out.println(user.name+":"+user.value);
    }
    }
    public static void dealLine(String line,Map map){
    if(!"".equals(line.trim())){
    String[] results = line.split(",");
    if(results.length == 3){
    String name = results[1];
    Integer value =(Integer) map.get(name);
    if(value == null){
    value = 0;
    }
    map.put(name, value+1);
    }
    }
    }
}
分享到:
评论

相关推荐

    ExcelVBA实例教程037:使用高级筛选获得不重复记录.pdf

    在实际应用中,可以根据需求调整`AdvancedFilter`的参数,例如添加条件范围来筛选满足特定条件的不重复记录,或者改变复制的目标位置。掌握这一功能对于处理大量数据并进行高效分析是非常有帮助的,尤其在应对诸如...

    利用Excel高级筛选选择不重复的记录.rar

    本教程重点讲解如何利用Excel的高级筛选功能来选择不重复的记录,从而帮助用户优化数据集,提高工作效率。 首先,我们要理解什么是高级筛选。高级筛选是Excel提供的一个强大工具,它可以依据自定义的复杂条件对数据...

    删除数据表中重复记录

    `GROUP BY NAME, VALUE`将具有相同`NAME`和`VALUE`的记录分组,而`HAVING COUNT(id) &gt; 1`则进一步筛选出那些分组后ID数量大于1的记录,即重复记录。 接下来,通过创建一个临时表来保存这些需要删除的重复记录: ``...

    需筛选出A列的重复记录 且 B列互为相反数

    标题提到“需筛选出A列的重复记录 且 B列互为相反数”,这显然是一个数据分析任务,主要目标是找出A列中有重复值的行,同时这些行的B列数值必须是一对相反数。下面将详细解释这个过程以及如何在Excel中实现这一操作...

    oracle 查询重复数据

    具体来说,通过使用`GROUP BY`子句结合`COUNT()`函数,可以统计每个唯一标识符(如`peopleid`)出现的次数,再利用`HAVING`子句筛选出出现次数大于1的标识符,从而定位到重复记录。 ### SQL语句解析 #### 基础SQL...

    oracle删除非主键重复类型的数据

    同样地,通过`GROUP BY`进行分组,并使用`HAVING COUNT(*) &gt; 1`筛选出重复记录。 - `SELECT MAX(hb.rowid)`选择每个分组中的最大`rowid`作为保留记录的依据。 - **外层DELETE语句**: - 最后,通过`DELETE FROM`...

    sql查询重复记录方法大全

    ### SQL查询重复记录方法大全 在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录...

    用excel高级筛选中选择不重复记录两种方式的差异图解.docx

    这里我们将深入探讨两种不同的方法,它们在处理不重复记录时的区别,并通过图解方式进行详细说明。 方法一:在原有区域显示筛选结果 这种方法在应用高级筛选时,不会真正删除或移除任何数据,而是将非重复的记录...

    SQL语句查询重复记录大全

    根据提供的标题、描述以及部分代码内容,我们可以整理出关于如何使用SQL语句查询及处理重复记录的相关知识点。本文将详细阐述这些知识点,并提供具体的SQL语句示例。 ### SQL语句查询所有重复记录 #### 1. 查询...

    最高效的删除重复记录方法

    这条 SQL 语句首先找出所有 `peopleId` 重复的记录,然后在这些记录中进一步筛选出除了具有最小 ROWID 的记录外的所有记录,并将它们删除。 ##### 方法三:基于多个唯一标识符的删除 当需要根据多个字段来确定记录...

    查找删除重复记录

    ### 查找删除重复记录 #### 知识点一:理解重复记录的概念与影响 在数据库管理中,重复记录是指数据库表中的数据项完全相同或部分关键字段相同的多条记录。这些重复的数据可能会导致数据统计不准确、占用额外的...

    Oracle查询重复数据与删除重复记录方法

    此查询语句通过子查询找出每组重复记录中ROWID最小的那条记录,并在外部查询中筛选出除ROWID最小之外的其他重复记录。 ##### 2. 使用GROUP BY方法 **查询重复数据示例** 使用`GROUP BY`方法时,可以通过计算每组...

    Excel 2021快速删除重复记录的方法.docx

    本教程将详细介绍两种快速删除重复记录的方法:传统方法(使用高级筛选)以及新增的“删除重复项”功能。 ### 一、传统方法:使用高级筛选 高级筛选是Excel中的一个强大功能,它允许用户根据特定条件筛选数据,...

    范例36 使用高级筛选功能获得不重复记录.xlsm

    范例36 使用高级筛选功能获得不重复记录.xlsm

    Excel2021中快速删除重复记录的技巧.docx

    本篇文章将介绍两种快速删除重复记录的方法:使用高级筛选和“删除重复项”功能。 首先,让我们来详细了解一下传统的方法——使用高级筛选: 1. **选择数据范围**:在你需要处理的单元格范围内点击,确保选择的是...

    数据库面试题大集合

    - **显示重复数据**:使用`GROUP BY`结合`HAVING COUNT(*) &gt; 1`来筛选出重复记录。 ```sql SELECT * FROM tablename GROUP BY id HAVING COUNT(*) &gt; 1; ``` - **去除重复数据**:同样使用`GROUP BY`,但`HAVING ...

    数据不重复记录c代码

    对无限量数据筛选不重复记录,读入数据文件即可。

    excel中查询重复记录并求和共1页.pdf.zip

    这份名为“excel中查询重复记录并求和共1页.pdf”的文档,很可能提供了一种简洁的方法来实现这个目标。在Excel中,我们可以利用“条件格式”、“数据筛选”和“SUMIF”函数等工具来完成这项任务。 首先,我们可以...

    sql_查询重复记录方法大全.txt

    根据提供的文件信息,我们可以深入探讨SQL中查询重复记录的各种方法及其应用场景。首先,我们来解析一下文件中的示例代码,并在此基础上进一步扩展相关的知识点。 ### 查找所有重复标题的记录 文件中的第一个示例...

Global site tag (gtag.js) - Google Analytics