排序 ArrayList - JAVA
Sorting ArrayList - JAVA
我有一个包含 3 列(姓名、性别、年龄)的 csv 文件,它是不规则的(未排序)。我创建了一个名为“Person”的 class 并通过 Person 对象将 csv 文件的每一列添加到 Araylist。之后我想对这个列表进行排序,但它没有排序。该列表与 csv 文件相同。我希望排序的代码如下。你能检查一下为什么这段代码没有根据年龄对我的列表进行排序吗?
Comparator<Person> comparator = new Comparator<Person>() {
@Override
public int compare(Person first, Person second) {
if (first.age < second.age) {
return first.age;
} else {
return second.age;
}
}
};
Collections.sort(myList, comparator);
enter code here
亲切的问候。
删除 if else 条件。
Comparator<Person> comparator = new Comparator<Person>() {
@Override
public int compare(Person first, Person second) {
return first.getAge() - second.getAge();
}
};
Collections.sort(persons, comparator);
或
Java 8
Collections.sort(persons, Comparator.comparingInt(Person::getAge));
myList.sort(Comparator.comparingInt(Person::getAge));
根据 Java 文档,
Comparator#compare
Returns:
负整数、零或正整数,因为第一个参数小于、等于或大于第二个参数。
我有一个包含 3 列(姓名、性别、年龄)的 csv 文件,它是不规则的(未排序)。我创建了一个名为“Person”的 class 并通过 Person 对象将 csv 文件的每一列添加到 Araylist。之后我想对这个列表进行排序,但它没有排序。该列表与 csv 文件相同。我希望排序的代码如下。你能检查一下为什么这段代码没有根据年龄对我的列表进行排序吗?
Comparator<Person> comparator = new Comparator<Person>() {
@Override
public int compare(Person first, Person second) {
if (first.age < second.age) {
return first.age;
} else {
return second.age;
}
}
};
Collections.sort(myList, comparator);
enter code here
亲切的问候。
删除 if else 条件。
Comparator<Person> comparator = new Comparator<Person>() {
@Override
public int compare(Person first, Person second) {
return first.getAge() - second.getAge();
}
};
Collections.sort(persons, comparator);
或
Java 8
Collections.sort(persons, Comparator.comparingInt(Person::getAge));
myList.sort(Comparator.comparingInt(Person::getAge));
根据 Java 文档,
Comparator#compare
Returns: 负整数、零或正整数,因为第一个参数小于、等于或大于第二个参数。