私はJava 8を初めて使用しています。名前で並べ替えるだけです。しかし、条件は:重複する名前がある場合は、年齢に応じてソートする必要があります。Javaで年齢とともに名前を並べ替える方法
例えば、私の入力は
tarun 28
arun 29
varun 12
arun 22
で、出力は
arun 22
arun 29
tarun 28
varun 12
でなければなりません。しかし、私は
varun 12
arun 22
tarun 28
arun 29
のようなものを取得し、それがどちらかだけの年齢や名前でソートを意味します。
これが実装されているコードです:
POJOクラス:
class Person {
String fname;
int age;
public Person() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public Person(String fname, int age) {
this.fname = fname;
this.age = age;
}
@Override
public String toString() {
return fname + age;
}
}
Testクラス:
public class Test {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
persons.add(new Person("tarun", 28));
persons.add(new Person("arun", 29));
persons.add(new Person("varun", 12));
persons.add(new Person("arun", 22));
Collections.sort(persons, new Comparator<Person>() {
@Override
public int compare(Person t, Person t1) {
return t.getAge() - t1.getAge();
}
});
System.out.println(persons);
}
}
驚くほどのお礼。 –