[英]Java - Best way to store a single value and one piece of corresponding information?
Java中存儲值和關於該值的一條相應信息的最佳方法是什么? 盡管使用起來非常好,但我覺得簡單的POJO在這里有點過大。
問題如下:我有一個表單對象,其中包含不同類型的“權重”值。 其中一些權重可能需要在我的JSP頁面上以粗體顯示,而在其他時候則不需要。
表示此信息的一種方法是使用大小為2的數組,其中第一個值為權重,第二個值為“ Y”或“ N”以表示其粗體狀態。
另一種選擇是使用還包含兩個值的列表。 或使用枚舉或自定義類型的對象等。
從設計的角度來看,代表這種基本數據形式的最干凈,最有效的方法是什么?
為什么不使用HashMap? 使用權重作為鍵,值為true或false。
Map<Double, Boolean> weight = new HashMap<Double, Boolean>();
有了它的重量很簡單:如果你想用NO來標記它,那就采取原始的雙重效果。
boolean no = weight < 0;
boolean yes = weight > 0;
double realWeight = Math.abs(weight);
您是否考慮使用HashMap ? 這使您可以將密鑰/對集中的兩個數據關聯起來。 例如,對於每個權重(一個Double值),您都可以關聯一個布爾值,該布爾值指示其是否應為粗體:
HashMap formData = new HashMap<Double, Boolean>();
formData.put(0.005, true);
formData.put(0.333, true);
formData.put(1.5, false);
formData.put(0.25, true);
您可以像這樣獲取任何單個值:
formData.get(0.005); // returns 'true'
或者您可以迭代所有值,如下所示:
Iterator it = formData.iterator();
while (it.hasNext()) {
Double singleForm = (Double)it.next();
System.out.println(singleForm.getKey() + " is " + singleForm.getValue());
}
使用Collections
→ Map
,這樣的東西。
Map<String, String> dataMap1 = new HashMap<>();
Map<pojo, boolean> dataMap2 = new HashMap<>();
dataMap2.put(pojo1, true);
...
鍵和值對,將鍵存儲為對象,將值存儲為關於該對象的屬性
參考: Collections API , Map API
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.