-1
我有從數據庫中提取的以下數據。Java中的嵌套映射
Date Name users
----- ------- ------
2016-11-23 00:00:00 aaaa 11
2016-11-24 00:00:00 aaaa 12
2016-11-25 00:00:00 aaaa 14
2016-11-24 00:00:00 bbbb 21
2016-11-26 00:00:00 bbbb 22
2016-11-23 00:00:00 cccc 31
2016-11-25 00:00:00 cccc 32
的數據是從使用GoogleAnalyticsPropertyDTO
我需要將其移動到ListSeries(尺寸11〜每天保持數據從11月20日至11月30日),使得
一個PostgreSQL取出預期結果:
result[0] = new ListSeries("aaa" , new Number[] { 0,0,0,11,12,14,0,0,0,0,0});
result[1] = new ListSeries("bbb" , new Number[] { 0,0,0,0,21,22,0,0,0,0,0 });
result[2] = new ListSeries("ccc" , new Number[] { 0,0,0,31,0,32,0,0,0,0,0 });
我試圖Map<Date, GoogleAnalyticsPropertyDTO> map = new HashMap<Date, GoogleAnalyticsPropertyDTO>();
但只獲得了最後一個系列的用戶價值爲每個d吃了。有人可以幫助我與日期和名稱值映射在一起,以便爲我的預期列表系列做一個映射嗎? MultiMap可以用於這個嗎?
我與
private Number[] getData(Date fromDate, Date toDate) {
Date from = DateUtility.getDateWithoutTime(fromDate.getTime());
Date to = DateUtility.getDateWithoutTime(toDate.getTime());
Number[] result;
int days = DateUtility.getDaysBetweenDates(from, to);
result = new Number[days];
List<GoogleAnalyticsPropertyDTO> gaPropList = XXXXXUI.getBusinessService().getGAProperty(fromDate, toDate);
Map<Date, GoogleAnalyticsPropertyDTO> map = new HashMap<Date, GoogleAnalyticsPropertyDTO>();
if (gaPropList != null) {
for (GoogleAnalyticsPropertyDTO gaProperty : gaPropList) {
Date dateString = gaProperty.getFromDate();
map.put(dateString, gaProperty);
}
Date date;
for (int d = 0; d < days; d++) {
date = DateUtility.addNDaysToDate(from, d);
if (null == map.get(date)) {
result[d] = 0;
} else {
GoogleAnalyticsPropertyDTO a = (GoogleAnalyticsPropertyDTO) map.get(date);
if (null == a.getUsers()) {
result[d] = 0;
} else {
result[d] = a.getUsers();
}
}
}
}
return result;
}
顯示你的代碼書面。沒有這些,我們無法真正幫助你。 –
映射被定義爲每個鍵都有一個值;這聽起來不像你要找的東西。 – ChiefTwoPencils
由於映射不適合我,我將它改爲2D數組。邏輯,但我也無法正確分配名稱..因爲名稱不總是相同的......它根據輸入數據而變化。 –