我正在製作我的電子郵件的信息圖。 它去相當不錯,但事情更混亂,然後他們必須,例如,如果我想獲得的電子郵件的人的數量sended我一個月,然後我用這個:submap一段時間
for (Person p : AL_persons) {
for (int y = firstYear; y <= lastYear; y++) {
for (int m = 1; m <= 12; m++) {
ArrayList<Email> emailThatMonth = new ArrayList<Email>();
for (Email e : p.emails) {
if (e.date.year().get() == y
&& e.date.monthOfYear().get() == m) {
emailThatMonth.add(e);
}
}
if (emailThatMonth.size() > maxEmailsMonth)
maxEmailsMonth = emailThatMonth.size();
}
}
}
我想提高該所以我可以更容易, 我想存儲每個月的第一天,所以我可以重新使用它。 (不從這裏經過測試的代碼)
ArrayList<DateTime> monthStarts = new ArrayList<DateTime>();
for (int y = firstYear; y <= lastYear; y++) {
for (int m = 1; m <= 12; m++) {
monthStarts.add(new LocalDate(y+"-"+m+"-01"));
}
}
然後拿到郵件我可以使用子圖:
for(DateTime ld : monthStarts) {
ArrayList<Email> emailThatMonth = emails.submap(ld, ld.plusMonths(1));
}
我認爲這應該工作,但是這是相當一些工作(不,我介意),我只是想知道你們對此的看法,看看是否有人有提示或其他想法來處理它。
注意,我用喬達時間(我喜歡)
那麼......你想得到什麼信息?每個月的電子郵件數量?每個月收到的電子郵件數量最多?看起來你最終編寫了很多變量,它們在超出範圍之前從不讀取。 – Thomas 2012-02-08 23:10:19
我有一個arrayList個人,一個人擁有一個arrayList與來自該人的所有電子郵件。我想每個人在一個月內收到總郵件。 我也有一個arrayList來保存所有人的所有電子郵件,所以我想從一個月(所有人)獲取所有電子郵件。 – clankill3r 2012-02-09 12:05:05