2

Java中存储一个值和关于该值的一条相应信息的最佳方式是什么?尽管使用起来可能很棒,但我觉得一个简单的 POJO 在这里有点矫枉过正。

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

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

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

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

4

4 回答 4

3

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

Map<Double, Boolean> weight = new HashMap<Double, Boolean>();
于 2012-12-21T04:44:20.410 回答
2

使用重量很容易:取一个原始的双精度,如果你想用 NO 标记它,让它成为负数。

boolean no = weight < 0;
boolean yes = weight > 0;
double realWeight = Math.abs(weight);
于 2012-12-21T04:56:12.207 回答
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 是一种极其快速轻量级的标准数据结构。

于 2012-12-21T04:46:24.780 回答
1

使用CollectionsMap,类似这样的东西。

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

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

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

参考:集合 API地图 API

于 2012-12-21T04:49:41.137 回答