【发布时间】:2021-11-04 22:08:03
【问题描述】:
我有一个 csv 文件,其中包括 3 列(姓名、性别、年龄),而且它是不规则的(未排序)。我创建了一个名为“Person”的类,并通过 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
亲切的问候。
【问题讨论】:
-
按照 javadocs 比较它的两个参数的顺序。返回负整数、零或正整数,因为第一个参数小于、等于或大于第二个。
-
您需要返回
Integer.compare(first.age, second.age)之类的内容,或者直接返回first.age - second.age。正如可怕的袋熊指出的那样,您需要阅读Comparator上的 Javadoc。 -
你能举个例子,你得到的结果是什么?
标签: java csv sorting arraylist collections