Java - 存储单个值和一条相应信息的最佳方法?

时间:2012-12-21 04:42:04

标签: java arrays list object

Java中存储值的最佳方法是什么,以及有关该值的一条相应信息? 尽可能使用它,我觉得这里有一个简单的POJO有点过分。

问题如下: 我有一个表单对象,其中包含不同类型的“权重”值。其中一些权重可能需要在我的JSP页面上以粗体显示,有时则不需要。

表示此信息的一种方法可能是使用大小为2的数组,其中第一个值是权重,第二个值是“Y”或“N”来表示其粗体状态

另一种选择是使用一个List,它也包含两个值。或者使用枚举,或自定义类型的对象等等。

从设计的角度来看,表示这种基本数据形式的最简洁,最有效的方法是什么?

4 个答案:

答案 0 :(得分:3)

为什么不使用HashMap?使用权重作为键,值为true或false。

Map<Double, Boolean> weight = new HashMap<Double, Boolean>();

答案 1 :(得分:2)

有了它的重量很容易:拿一个原始的双倍,如果你想用NO来标记它,那就是否定它。

boolean no = weight < 0;
boolean yes = weight > 0;
double realWeight = Math.abs(weight);

答案 2 :(得分:1)

您考虑使用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是一种极其fastlightweight和标准数据结构。

答案 3 :(得分:1)

使用CollectionsMap,就像这样。

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

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

键和值对,将键存储为对象,将值存储为有关该对象的属性

参考:Collections APIMap API