【发布时间】:2014-12-02 15:45:09
【问题描述】:
我有一个自定义Users. 的ArrayList 该列表已按manager.排序我的目标是按manager 浏览列表,并根据每个用户的到期时间将每个用户添加到电子邮件正文中日期。
User 基本上是这样从数据库中构建的。所有必要的访问器/修改器都存在:
id|fName|lName|...|manager
查看用户并在用户到期时通知管理员:
To: Manager
Expiring in 10 days
<User>
<User>
Expiring in 30 days
<User>
StringBuilder body = new StringBuilder();
ArrayList<Users> contractors;
Date today = cal.getTime();
...
if(contractors != null && contractors.size() > 0){
for(int i = 0; i < contractors.size(); i++){
if(i+1 > contractors.size()){
//do something to avoid outOfBounds and still access last item in the list
}else{
if (contractors.get(i+1).getManager() != null){
if(manager.equals(contractors.get(i+1).getManager())){
if(today.compareTo(contractor.getExpiration()){
//build body of email
}
}
}
sendEmail(manager, body.toString());
}else{
//new manager
body.equals(""); // reset email for next run
}
}
发送电子邮件后,我想转移到基于manager. 的下一组用户我的问题是我遇到了经理遍历数组然后每次为每个新@ 重置的逻辑问题987654330@我想我需要另一个for loop?
最好的方法是什么?谢谢
编辑
当以这种方式实现时:
【问题讨论】:
-
你能添加你如何设置/更改
mangager吗? -
为什么是
contractors.get(i+1)?这永远不会到达contractors.get(0)- 这是有原因的吗? -
我正在像这样设置初始承包商
contractor = contractors(i);抱歉我漏掉了 -
现在你真的把我弄糊涂了。