根据对象参数值在toString中对对象进行排序

时间:2012-10-18 00:42:29

标签: java logic

我有这个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对象

Person类采用这些参数

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

2 个答案:

答案 0 :(得分:3)

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

但是对于您要找的内容,请创建一个Person s

列表
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();   
}

答案 1 :(得分:1)

是的,但您首先需要List或数组。

List<Person> family;

或者:

Person[] family;

然后,您可以使用Collection.sortArrays.sort重新订购家庭以进行打印。