我們每個屬性映射到兩個值在DB,需要使用Java集合來映射值的建議。請建議
防爆配置:
Property Name Min Value Max Value
VSMSSUB 100 500
EEVMSSUB 100 500
現在,收集可以用來存儲性能而最小&最大值? HashMap是不可能的,因爲它是一對一的。
或
我可以這樣申報嗎?
的HashMap
或
需要用豆?
請建議您的建議。
我們每個屬性映射到兩個值在DB,需要使用Java集合來映射值的建議。請建議
防爆配置:
Property Name Min Value Max Value
VSMSSUB 100 500
EEVMSSUB 100 500
現在,收集可以用來存儲性能而最小&最大值? HashMap是不可能的,因爲它是一對一的。
或
我可以這樣申報嗎?
的HashMap
或
需要用豆?
請建議您的建議。
您可以使用屬性名稱爲key的HashMap
以及保留最小值和最大值的複合對象。例如:
public class Value {
private int minValue;
private int maxValue;
public Value(int min, int max) {
minValue = min;
maxValue = max;
}
}
然後創建一個HashMap
爲:
HashMap<String, Value> map = new HashMap<String, Value>();
,並添加鍵值:
map.put("VSMSSUB", new Value(100, 500);
map.put("EEVMSSUB", new Value(100, 500);
使用存儲在其中的最小 - 最大值作爲字段的複合對象。
class MinMax {
private int min;
private int max;
//getters, setters
}
Map<String, MinMax> map = new HashMap<String, MinMax>();
這是一種常見的做法,看起來並不醜陋。
您可以更改整型數據類型
HashMap<String, Integer[]>
HashMap<String, YourBeanClass> // (YourBeanClass has min and max members)
HashMap<String, List<Integer>>
我認爲正如其他人所說的那樣r回答您正面臨一個非常常見的用例,並且Bean解決方案遠不是反模式......在不同的應用程序中,我使用這種策略添加了更多數據,其中包含諸如默認值或平均值等字段(這並不總是數學平均值),但最常用的... 因此,使用類,如
public class DefaultChoicesBean <T> {
private T minValue;
private T maxValue;
private T medianValue;
private T defaultValue;
public T getMinValue() {
return minValue;
}
public void setMinValue(T minValue) {
this.minValue = minValue;
}
public T getMaxValue() {
return maxValue;
}
public void setMaxValue(T maxValue) {
this.maxValue = maxValue;
}
public T getMedianValue() {
return medianValue;
}
public void setMedianValue(T medianValue) {
this.medianValue = medianValue;
}
public T getDefaultValue() {
return defaultValue;
}
public void setDefaultValue(T defaultValue) {
this.defaultValue = defaultValue;
}
}
您可以使用仿製藥,以避免編寫相同的代碼幾次... 這個類非常適合於應用程序與過去的用戶選擇學習,所以中值可以是一個自動adatptative ...
希望這可以幫助
傑羅姆
嗯,我真的不同意你使用泛型來存儲域數據。每個域都應該有它自己的特定對象,這使得系統解耦,並且在未來更容易更改。因此,對於我的FoodDatabase數據訪問層,我將創建一個包含「int min,int max」的「MinMaxCalories」類,並且對於我的SalaryDatabase,我將創建一個也包含「int min,int max」的單獨的「MinMaxDollars」類。如果在這兩種情況下使用相同的泛型類,嘗試使用新數據擴展Salary數據庫時會遇到麻煩。因此,我建議不要使用域名信息的泛型。 – bezmax 2012-01-10 12:57:49
這看起來不像一個正確的語法... – bezmax 2012-01-10 10:55:37
對不起,由於某種原因,它不會讓我失望。 – bezmax 2012-01-10 11:02:31
謝謝@Max,我犯了一個錯字。 – 2012-01-10 11:03:46