java treemap比较器排序


```package Singgame;
import java.util.*;
public class Member implements Comparator{
    public int compare(Object obj1,Object obj2) {//定义比较器 书上这么写的
        String key1 = (String) obj1;
        String key2 = (String) obj2;
        return key2.compareTo(key1);

}
}
//单一的成绩可以,但评委一多排序就乱了,求原因
//
//解决评委人数变量,然后设为全局变量 
//如何变化地用集合储存,将数组转为集合
//2个想法如何调出来排序 设置算法找到list成绩中对应的姓名 或 collections.sort 舍去
//排好序如何找到成绩对应的那个人  将sum单独作为一个集合
//从2个Arraylist到 Trremap 比较器排序 觉得总成绩与姓名一一对应好查找
//书上的比较器是String 我的key是int  转化
//intToString(sum)方法是指返回的是String 而不是将int变为String  错误找了15分钟
import java.util.*;
public class Execute{
    static int x;
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        TreeMap map = new TreeMap(new Member());
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入评委的人数:");
         x = sc.nextInt();
        while(true) {
        System.out.println("欢迎来到歌咏比赛成绩管理系统");
        System.out.println("1 请输入选手姓名和成绩");
        System.out.println("2 计算排名");
        System.out.println("3 退出系统");
        System.out.println("    请输入你的选择:");
        int choose = sc.nextInt();
        switch(choose){
            case 1:
                System.out.println(" 请输入选手姓名和成绩");    
                addGrade(list,map);
                break;
            case 2:
                System.out.println(" 计算排名");
                Rank(map);
                break;
            case 3:
                System.out.println("谢谢使用");
             System.exit(0);
            default:System.out.println("请输入正确的选择:");
                
        }                                
    }        
    }
    public static String intToString(int value) {//int与String转化
        Integer integer = new Integer(value);
        return integer.toString();
        }
    public static void addGrade(ArrayList list,TreeMap map) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入选手姓名:");
        String str = sc.next();
        list.add(str);
        int []ids=new int[x];
        System.out.println("输入成绩");
        for(int i=0;i<ids.length;i++) {
            ids[i]=sc.nextInt();
        }    
        int sum=0;//求和
        for(int i=0;i<ids.length;i++) {
            sum+=ids[i];
        }        
        list.add(sum);
        for(int in: ids) {
            list.add(in);
        }
        map.put(intToString(sum),str);
        System.out.println(list);//后面删掉
    }
    public static void Rank(TreeMap map) {
        System.out.println(map);
        /*Set keySet = map.keySet();
        Iterator it = keySet.iterator();
        while(it.hasNext()) {
            Object key = it.next();
            Object value = map.get(key);
            System.out.println(key+":"+value);
        }*/
                
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^