Java 气泡对数值进行排序(从高到低)或(从低到高)

Java 气泡对数值进行排序(从高到低)或(从低到高),java,bubble-sort,Java,Bubble Sort,我很难搞清楚这件事。 我有一个2D字符串数组,其中包含名称及其年龄。 我想用他们的年龄来分类。我可以通过转换为int对年龄进行排序,但是 问题是这些名字没有按年龄排列。有人能帮我吗 String [][]data={ {"Jon", "17"}, {"Jim", "10"}, {"Tom", "15" }}; 预期产出: 吉姆10 汤姆15 Jon 17创建一个类来表示您的数据,比如说Pers

我很难搞清楚这件事。 我有一个2D字符串数组,其中包含名称及其年龄。 我想用他们的年龄来分类。我可以通过转换为int对年龄进行排序,但是 问题是这些名字没有按年龄排列。有人能帮我吗

String [][]data={
                 {"Jon", "17"},
                 {"Jim", "10"},
                 {"Tom", "15" }};
预期产出: 吉姆10 汤姆15
Jon 17

创建一个类来表示您的数据,比如说
Person
。现在,该类将定义一种与其他
Person
对象进行比较的方法,这是在
compareTo
中完成的

现在,当您调用
Array.sort()
时,该方法知道如何比较两个不同的person对象(在本例中是按年龄)


向我们展示您的尝试。请向我们展示代码。旁注-“2D数组”很烦人,您应该创建一个简单的类来表示一个人。
public class Main{
    public static void main(String[] args) {
        Person[] people = new Person[3];
        people[0] = new Person("John", 17);
        people[1] = new Person("Jim", 10);
        people[2] = new Person("Tom", 15);
        Arrays.sort(people);

        for(Person p : people)
            System.out.println(p.name + ", " + p.age);
    }
}

class Person implements Comparable<Person>{
    public final String name;
    public final int age;

    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }

    @Override
    public int compareTo(Person person) {
        return age - person.age;
    }
}
Jim, 10
Tom, 15
John, 17