簡體   English   中英

Java - 存儲單個值和一條相應信息的最佳方法?

[英]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());
}

HashMap是一種非常快速輕巧和標准的數據結構。

使用CollectionsMap ,這樣的東西。

Map<String, String> dataMap1 = new HashMap<>();

Map<pojo, boolean> dataMap2 = new HashMap<>();
dataMap2.put(pojo1, true);
...

鍵和值對,將鍵存儲為對象,將值存儲為關於該對象的屬性

參考: Collections APIMap API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM