筛选出重复记录

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);
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值