0

我设置了这个 toString 方法

public String toString (){
    String result;
    result = "Ideal Family";
    result += "\n"+person1.toString();
    result += "\n"+person2.toString();
    result += "\n"+person3.toString();
    result += "\n"+person4.toString();
    result += "\n"+pet1.toString();
    result += "\n"+car1.toString();
    result += "\n"+car2.toString();
    result += "\n"+homeAddress.toString();
    return result;
}

在其中我按照我希望输出它们的顺序列出对象。有没有办法根据对象中的值重新排序列表。特别是在 Person 类中,基于实例变量 int 对人员对象进行重新排序。

Person 类采用这些参数

public Person (String personName,String personGender,String personSS,int personAge){
    name = personName;
    ss = personSS;
    age = personAge;
    gender = personGender;
}
4

2 回答 2

3

首先,您应该使用一个集合而不是四个变量。这会更容易。

但是对于您要查找的内容,请创建一个Persons列表

List<Person> personList = Arrays.asList(person1, person2, person3, person4);

排序列表

Collections.sort(personList, Comparator<Person>() {
    public int compare(Person p1, Person p2) {
        return Integer.valueOf(p1.getAge()).compareTo(p2.getAge());
    }
});

并遍历列表

for(Person person : personList) {
    result += "\n"+person.toString();   
}
于 2012-10-18T00:49:20.857 回答
1

是的,但您首先需要一个Listor 数组。

List<Person> family;

或者:

Person[] family;

然后,您可以使用Collection.sortArrays.sort对族重新排序以进行打印。

于 2012-10-18T00:50:18.947 回答