编程题:
员工 工资
张三 2000
李四 2500
王二 2000
.... ....
.... ....
用JAVA代码输出工资相等的(忽略名字相等,算法效率越高越好)。
员工 工资
张三 2000
李四 2500
王二 2000
.... ....
.... ....
用JAVA代码输出工资相等的(忽略名字相等,算法效率越高越好)。
解决方案 »
- 高分求助图片等比缩放算法?
- jbuilder用Native 生成exe时遇到的问题,求解.
- 问个关于String类数组内存分配的问题
- 高分相赠:请高手查看一下这个程序
- applet在显示时显示一个边界,怎么办呢??朋友说加个border,但applet没有border属性啊,请问怎么设置呢??
- 连接池不能配置
- 面对java培训材料你敢说是java专家么?(java培训材料连载之4)--数据结构 socket通信 gc
- 有关jtable的打印问题
- 我的性能图怎么会出这种问题呢!!!!!到底怎么回事啊??我好伤心的,GG救救我拉!那个JScrollPane到底有什么玄机啊~~~~~~~~~~~~~~~~~~~~
- 高校联盟编程挑战赛——求和问题
- outputStream怎么实现Mark();Reset();
- 怎么统一处理菜单事件
楼主截止到2008-06-19 12:14:41的汇总数据:
注册日期:2006-4-28
上次登录:2008-6-19
发帖数:1
结贴数:0
结贴率: 0.00%
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
key: 分数
value:名字;名字;名字遍历
输出
{
List list = new ArrayList();
list.add(名字);
map.put(工资,list);
}
else
{
List list = (List)名字集合;
list.add(名字);
map.put(工资,list);
}最后遍历map,value长度大于1的就是相同工资的
import java.util.*;class Salary {
private String name = "";
private int salary = 0;
public Salary() { }
public Salary(String name, int salary) {
this.name = name;
this.salary = salary;
}
public String getName() {return this.name;}
public void setName(String name) {this.name = name;}
public int getSalary() {return this.salary;}
public void setSalary(int salary) {this.salary = salary;}
public String toString() {return this.name + "\t" + this.salary;}
}public class Finder { public static void main(String[] args) {
Salary[] ss = {
new Salary("张三", 2000),
new Salary("李四", 2500),
new Salary("王二", 2000),
new Salary("张三", 2000)
};
System.out.println("员工\t工资");
for (Salary s : ss) System.out.println(s);
System.out.println("---------------------");
Map<Integer, HashSet<String>> map = new HashMap<Integer, HashSet<String>>();
for (Salary s : ss) {
if (map.containsKey(s.getSalary())) {
map.get(s.getSalary()).add(s.getName());
} else {
HashSet<String> ths = new HashSet<String>();
ths.add(s.getName());
map.put(s.getSalary(), ths);
}
}
Set<Integer> set = map.keySet();
for (Integer s : set) {
System.out.println(s);
Set<String> ns = map.get(s);
for (String n : ns) {
System.out.println("\t" + n);
}
}
}}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Comparator;class Item {
private String name;
private int salary;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
class MyComparator implements Comparator { public int compare(Object o1, Object o2) {
Item c1=(Item)o1;
Item c2=(Item)o2;
if (c1.getSalary() >c2.getSalary()) {
return 1;
} else if (c1.getSalary() == c2.getSalary()) {
return 0;
} else {
return -1;
}
}
}
public class Person{
public static void main(String[] args){
List<Item> list=new ArrayList<Item>();
for(int i=0;i<10;i++){
Item p=new Item();
p.setName("n"+i);
p.setSalary(i%7);
list.add(p);
}
System.out.println("----------排序前---------");
System.out.println(" name salary");
for(int i=0;i<list.size();i++){
System.out.println(" "+list.get(i).getName()+" "+list.get(i).getSalary());
} MyComparator mc=new MyComparator();
Collections.sort(list,mc);
System.out.println("----------排序后---------");
System.out.println(" name salary");
for(int i=0;i<list.size();i++){
System.out.println(" "+list.get(i).getName()+" "+list.get(i).getSalary());
}
for(int i=0;i<list.size();){
String names=list.get(i).getName();
while(i+1<list.size()&&list.get(i).getSalary()==list.get(i+1).getSalary()){
names+=","+list.get(i+1).getName();
i++;
}
i++;
System.out.println(names+" salary:"+list.get(i-1).getSalary()+" 元");
}
}
}
----------排序前---------
name salary
n0 0
n1 1
n2 2
n3 3
n4 4
n5 5
n6 6
n7 0
n8 1
n9 2
----------排序后---------
name salary
n0 0
n7 0
n1 1
n8 1
n2 2
n9 2
n3 3
n4 4
n5 5
n6 6
n0,n7 salary:0 元
n1,n8 salary:1 元
n2,n9 salary:2 元
n3 salary:3 元
n4 salary:4 元
n5 salary:5 元
n6 salary:6 元
List<Salary> sls = new ArrayList<Salary>();
sls.add(new Salary(2000,"张三"));
sls.add(new Salary(2500,"李四"));
sls.add(new Salary(2000,"王二"));
sls.add(new Salary(2000,"张四"));
for (Iterator<Salary> ite = sls.iterator(); ite.hasNext();) {
Salary sl = ite.next();
List<String> names = hm.get(sl.salary);
if (names == null) {
names = new ArrayList<String>();
hm.put(sl.salary, names);
}
names.add(sl.name);
}
Set<Entry<Integer, List<String>>> set = hm.entrySet();
Iterator<Entry<Integer, List<String>>> ite = set.iterator();
while (ite.hasNext()) {
Map.Entry<Integer,List<String>> temp = (Map.Entry<Integer,List<String>>)ite.next();
System.out.println(temp.getKey());
for (int i = 0; i < temp.getValue().size(); i++) {
System.out.println(temp.getValue().get(i));
}
}