根据以下表格信息,使用java语言,写出获得相同工资员工名称(不考虑重名可能性)的算法,(算法效率越高越好)
员工 工资
张三 2000
李四 1500
王二 2800
Adams 4000
David 1000
Max 1500
Peter 2000

解决方案 »

  1.   


    这题貌似不难哦,先将所有员工姓名取出放入一数组中,两个for就可以搞定,
      

  2.   

    用map结构快 map<Integer,List<String>> Integer存放工资  List<String> 存放对应工资的人的姓名
      

  3.   

    map结构效率不错的,底部实现是用的hash算法,比for快多了
      

  4.   

    //声明一map存放基本工资信息
    Map<String,Integer> empMap=new HashMap<String,Integer>();
    empMap.put("张三",2000);
    empMap.put("李四",1500);
    empMap.put("王五",1500);
    empMap.put("赵六",2000);
    //生命一map存放统计结果
    Map<Integer,List<String>> resultMap=new HashMap<Integer,List<String>>();//将结果统计到resultMap中
    for(String empName:empMap.keySet()){
      if(resultMap.get(empMap.get(empName))!=null){
        resultMap.get(empMap.get(empName)).add(empName)
        }else{
          List<String> list=new ArrayList<String>();
          list.add(empName);
          resultMap.put(empMap.get(empName),list);
        }
    }
    //以上是我个人的想法,不对的地方请高手指点一下。
      

  5.   


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;@SuppressWarnings("unchecked")
    public class Salary
    {
    public static void main(String[] args)
    {
    Map data = new HashMap();

    data.put("张三", 2000);
    data.put("李四", 2000);
    data.put("王二", 2800);
    data.put("Adams", 4000);
    data.put("David", 1000);
    data.put("Max", 1500);
    data.put("Peter", 2000);

    Map result = new HashMap();
    Iterator keys = data.keySet().iterator();

    while(keys.hasNext())
    {
    String key = keys.next().toString();
    String val = data.get(key).toString();

    List list = new ArrayList();
    if(null != result.get(val))
    list = (List)result.get(val);
    list.add(key);
    result.put(val, list);
    }
    new Salary().show(result);
    }
    public void show(Map map)
    {
    Iterator keys = map.keySet().iterator();
    while(keys.hasNext())
    {
    String key = keys.next().toString();
    System.out.println(map.get(key));
    }
    }
    }