【问题标题】:Java - sorting a names array to match their scores [closed]Java - 对名称数组进行排序以匹配他们的分数[关闭]
【发布时间】:2014-11-23 21:57:05
【问题描述】:

尝试对包含参与者姓名的字符串数组进行排序,以匹配包含他们的测验分数的分数数组。我已经设法将分数从高到低排序,但是名字的位置错误。

【问题讨论】:

    标签: java arrays sorting names


    【解决方案1】:

    嗯,这就是Object 将使您的生活变得异常轻松的地方。不要处理多个数组。处理 Person 类型的单个数组。

    public class Person {
        private String name;
        private int score;
    
        public Person(String name, int score) {
            this.name = name;
            this.score = score;
        }
    
        // you'll need some getters and setters!
    }
    

    现在您可以实现Comparable 接口。这允许您进行排序。比如……

    public class Person implements Comparable<Person>
    

    这将迫使您实现compareTo 方法..

    public int compareTo(Person other)
    {
        if(other.getScore() > this.score) return -1;
    
        if(other.getScore() < this.score) return 1;
    
        return 0;
    }
    

    然后,您可以调用Collections.sort 方法为您排序..

    List<Person> myPeople = new ArrayList<Person>(); 
    
    // Populate it..
    
    Collections.sort(myPeople);
    

    补充阅读

    【讨论】:

    • 不使用对象有什么办法吗?
    • 我的观点是,在没有对象的情况下这样做会产生难以管理且过于复杂的代码!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 2013-06-21
    • 1970-01-01
    • 2022-08-18
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多