java 集合 从类似如下的文本文件中读取出所有的姓名,并打印出重复的 * 姓名和重复的次数,并按重复次数排序:
2015-11-28 17:23
495 查看
package am;
/*
* 从类似如下的文本文件中读取出所有的姓名,并打印出重复的
* 姓名和重复的次数,并按重复次数排序:
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class CopyOfGetNameTest
{
public static void main(String[] args)
{
Map<String,Integer> results = new TreeMap<String,Integer>();
List<User> tm = new ArrayList<User>();
tm.add(new User("张三", 28));
tm.add(new User("李四", 35));
tm.add(new User("张三", 28));
tm.add(new User("王五", 35));
tm.add(new User("张三", 28));
tm.add(new User("李四", 35));
tm.add(new User("赵六", 28));
tm.add(new User("田七", 35));
for(User x:tm)
{
dealLine(x,results);
}
for(Map.Entry<String, Integer> m:results.entrySet())
{
System.out.println(m);
}
}
private static void dealLine(User x, Map<String, Integer> map)
{
String name = x.getName();
Integer value = (Integer) map.get(name);
if(value == null)
{
value = 0;
}
map.put(name, value + 1);
}
public static void dealLine(String line,Map<String, Integer> 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);
}
}
}
}
class User implements Comparable<User>
{
public String name;
public Integer value;
public User(String name,Integer value)
{
this.name = name;
this.value = value;
}
public String getName()
{
return name;
}
public Integer getAge()
{
return value;
}
@Override
public String toString()
{
return "name = " + name + " value = " + value;
}
@Override
public boolean equals(Object obj)
{
if(this == obj)
{
return true;
}
if(obj instanceof User)
{
User user = (User) obj;
if((this.name.equals(user.name)) && (this.value == user.value))
{
return true;
}
}
return false;
}
public int compareTo(User user)
{
int num = 0;
int i = this.name.compareTo(user.name);
if(i>0)
{
num = 1;
}
else if(i<0)
{
num = -1;
}
else
{
num = this.value>user.value?1:(this.value==user.value?0:-1);
}
return num;
}
}
/*
* 从类似如下的文本文件中读取出所有的姓名,并打印出重复的
* 姓名和重复的次数,并按重复次数排序:
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class CopyOfGetNameTest
{
public static void main(String[] args)
{
Map<String,Integer> results = new TreeMap<String,Integer>();
List<User> tm = new ArrayList<User>();
tm.add(new User("张三", 28));
tm.add(new User("李四", 35));
tm.add(new User("张三", 28));
tm.add(new User("王五", 35));
tm.add(new User("张三", 28));
tm.add(new User("李四", 35));
tm.add(new User("赵六", 28));
tm.add(new User("田七", 35));
for(User x:tm)
{
dealLine(x,results);
}
for(Map.Entry<String, Integer> m:results.entrySet())
{
System.out.println(m);
}
}
private static void dealLine(User x, Map<String, Integer> map)
{
String name = x.getName();
Integer value = (Integer) map.get(name);
if(value == null)
{
value = 0;
}
map.put(name, value + 1);
}
public static void dealLine(String line,Map<String, Integer> 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);
}
}
}
}
class User implements Comparable<User>
{
public String name;
public Integer value;
public User(String name,Integer value)
{
this.name = name;
this.value = value;
}
public String getName()
{
return name;
}
public Integer getAge()
{
return value;
}
@Override
public String toString()
{
return "name = " + name + " value = " + value;
}
@Override
public boolean equals(Object obj)
{
if(this == obj)
{
return true;
}
if(obj instanceof User)
{
User user = (User) obj;
if((this.name.equals(user.name)) && (this.value == user.value))
{
return true;
}
}
return false;
}
public int compareTo(User user)
{
int num = 0;
int i = this.name.compareTo(user.name);
if(i>0)
{
num = 1;
}
else if(i<0)
{
num = -1;
}
else
{
num = this.value>user.value?1:(this.value==user.value?0:-1);
}
return num;
}
}
相关文章推荐
- 如何加快Eclipse的启动速度?
- eclipse不能修改dynamic web module version的解决办法
- 七牛CDN部分JAVA使用教程
- SpringMVC的各种参数绑定方式
- Java数组初始化与内存控制
- java反射机制(1)- 知识点总结Java Reflection API操作
- Spring4.2.0设计思想---总体架构
- myeclipse 没有提示时的设置
- JDK切换版本
- 多线程之:java线程创建
- 关于java中==号的一点了解
- java基础阶段总结
- 我的第六个java程序 spring-bean
- Java虚拟机运行时数据区
- 《疯狂Java讲义》第2章——理解面向对象
- LRU缓存介绍与实现 (Java)
- Spring 中的 classpath*: 与 classpath: 通配符
- SpringMVC注解@RequestParam
- Spring 框架的设计理念与设计模式分析
- java保存图片内容到数据库