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 オブジェクトを並べ替えます。

Person クラスはこれらのパラメータを取ります

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

2 に答える 2

3

まず、4 つの変数ではなく、コレクションを使用する必要があります。もっと簡単だったでしょう。

しかし、あなたが探しているもののために、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

Listはい。ただし、最初に or 配列が必要です。

List<Person> family;

または:

Person[] family;

次に、Collection.sortまたはArrays.sortを使用して、ファミリを印刷用に並べ替えることができます。

于 2012-10-18T00:50:18.947 に答える