java - 如何从我的数组列表中返回最近加入的成员?
问题描述
我正在尝试查找最近加入我的健身俱乐部人员列表的成员。我的思考过程是找到最高的年份,然后是最高的月份,但我在执行它时遇到了麻烦。
以下是俱乐部成员:
club.join(new Membership("Ellen", 2, 2016, 115.00));
club.join(new Membership("Eric", 1, 2017, 75.00));
club.join(new Membership("Ben", 3, 2015, 35.50));
club.join(new Membership("Matt", 12, 2014, 42.00));
club.join(new Membership("Luke", 5, 2010, 145.00));
club.join(new Membership("Jon", 6, 2017, 65.00));
club.join(new Membership("Ryan", 7, 2016, 0.00));
club.join(new Membership("Alan", 8, 2015, 195.00));
club.join(new Membership("Jaden", 9, 2015, 15.00));
club.join(new Membership("Dan P", 10, 2011, 25.00));
club.join(new Membership("Jack", 2, 2013, 80.75));
club.join(new Membership("Mrs. R", 1, 2014, 125.00));
club.join(new Membership("Dan S", 1, 2015, 45.00));
club.join(new Membership("Caleb", 10, 2016, 0.00));
club.join(new Membership("Jacob", 5, 2017, 10.00));
club.join(new Membership("Anny", 7, 2016, 110.00));
club.join(new Membership("Wendy", 7, 2015, 85.00));
club.join(new Membership("Natalie", 8, 2014, 0.00));
club.join(new Membership("Paul", 9, 2016, 20.00));
club.join(new Membership("Zuck", 10, 2017, 55.00));
这是我查找最新方法的代码:
int tempMonth = 13;
int tempYear = 3000;
ArrayList<Membership> ppl = new ArrayList<Membership>();
Iterator<Membership> itr = members.iterator();
while(itr.hasNext())
{
Membership item = itr.next();
if(members.size() == 0)
{
return null;
}
else
{
if(tempYear > item.getYear())
{
if(tempMonth > item.getMonth())
{
ppl.add(item);
itr.remove();
}
}
}
}
return ppl;
解决方案
您可以使用Collections.max
和自定义Comparator
对列表进行排序Membership
Collections.max(members, Comparator.comparing(Membership::getYear)
.thenComparing(Membership::getMonth));
您也可以使用stream
members.stream().max(//comparator)
推荐阅读
- java - 两个 Spring 应用程序每个都使用 jpa 来控制单个数据库
- metal - 从 MTLTexture 创建图像时添加 alpha 值
- android - 我在 Android Studio 上运行了 bluestacks,但 Android Studio 的 Logcat 窗口没有显示任何内容
- r - R 的 purrr 包快捷方式点含义:.f, .p
- ruby-on-rails - 使用 Octokit 的 Github API 请求极慢
- javascript - 为基于 AJAX 的应用程序建议最好的 noSQL 数据库(即没有 Websockets)
- ruby-on-rails - 如何将表编号中的值替换为单词
- javascript - Kibana Canvas 插件不适用于 SearchGuard
- css - 防止全局 CSS 在 Angular 5 中应用组件
- python - python中的图像分割