【发布时间】:2018-01-02 08:17:53
【问题描述】:
大家好,我有 3 个系列, 第一个我想按姓名排序,第二个用于电子邮件,最后一个我想按年龄排序。 我的问题是它可以使用集合吗?
如果我在 sql 中这样做
sort by name,email,age
我知道它工作正常吗?
我正在尝试像这样在 java 中这样做。
Collections.sort(listPeople, new Comparator<People>() {
@Override
public int compare(final People o1, final People o2) {
return o1.getName().compareTo(o2.getName());
}
});
//then
Collections.sort(listPeople, new Comparator<People>() {
@Override
public int compare(final People o1, final People o2) {
return o1.getEmail().compareTo(o2.getEmail());
}
});
//and then
Collections.sort(listPeople, new Comparator<People>() {
@Override
public int compare(final People o1, final People o2) {
return o1.getAge().compareTo(o2.getAge());
}
});
有用吗?还是每个集合都覆盖以前的?
【问题讨论】:
-
你为什么不尝试运行它并告诉我们它是否有效
-
类应该以单个实例命名。如果您的类的实例代表一个人,请将其命名为
Person,而不是People。 -
你的问题有点自相矛盾。 SQL
sort by name,email,age(真的,order by)对多个字段上的一组行进行排序。但是然后您谈论 3 个集合,每个集合在一个字段上排序。然后您的代码对一个集合进行 3 次排序。请澄清。 -
这只是一个例子:P
-
@Arkadiy 想要的是你的问题更准确。你到底想达到什么目的?您是否想通过不同的比较器对 3 个不同的集合进行排序,或者您想使用按名称排序的比较器对一个集合进行排序,但如果名称相等则按电子邮件排序,如果电子邮件相等则按年龄排序。目前状态还不清楚。
标签: java sorting collections java-8