4键值HashMap?阵列?最佳方法?

时间:2014-02-19 16:43:41

标签: java arrays hashmap

我已经完成了以下大量工作。

validateParameter(field_name, field_type, field_validationMessage, visibleBoolean);

我是否可以使用某种形式的嵌套hashmap / 4d数组来构建它并循环遍历它们,而不是连续50-60个这样的数组?

这样做的最佳方法是什么?

谢谢!

编辑:有4个项目。

3 个答案:

答案 0 :(得分:1)

您可以做的是创建一个包含三个值的新Class。 (类型,boolean和名称,或第四个值(您没有列出它))。然后,在创建HashMap时,您所要做的就是调用method来获取您的三个值。这可能看起来更像是工作,但您只需要创建一个简单的loop来完成所需的所有值。由于我不确切地知道你想要做什么,我所能做的就是提供一个我想要做的事情的例子。希望它适用于你的问题。

无论如何,创建Class以保存您需要的三个(或四个)值。

例如,

Class Fields{
     String field_name;
     Integer field_type;
     Boolean validationMessageVisible;

  Fields(String name, Integer type, Boolean mv) {
  //  this.field_name = name;
    this.field_type = type;
    this.validationMessageVisible = mv;
}

然后将它们放在HashMap中,有点像这样:

     HashMap map = new HashMap<String, Triple>();
     map.put(LOCAL STRING FOR NAME OF FIELD, new Field(new Integer(YOUR INTEGER),new Boolean(YOUR BOOLEAN)));

注意:只有这三个或四个值都可以存储在一起时,这才会起作用。例如,如果您因为任何原因需要单独存储所有值,那么这将不起作用。只有当它们可以组合在一起而不会影响程序的功能时,这才有效。

这是一个快速的头脑风暴。不确定它是否会起作用,但请按照这些思路思考,我相信它应该适合你。

您可能需要进行一些编辑,但这应该会让您朝着正确的方向前进

P.S。对不起因为它如此冗长,只是试图尽可能多地获取详细信息。

答案 1 :(得分:1)

另一个答案很接近,但在这种情况下你不需要钥匙。

只需定义一个包含三个字段的类即可。创建该类的列表或数组。遍历列表或数组,为每个组合调用方法。

答案 2 :(得分:1)

我使用的方法是创建一个POJO(或一些POJO)来将值存储为属性并按属性验证属性。

因为很多时候你会对每个属性类型进行相同的验证(例如,日期和数字可以通过范围验证,字符串可以被验证以确保它们不为空或空等),你可以只是迭代这些属性使用反射(甚至更好,使用注释)。

如果您需要在POJO级别进行验证,您仍然可以通过组合重用这些属性级验证器,而您在抽象级别中添加更多特定验证(上升意味着基本属性 - &gt; pojos - &gt; pojos包含其他pojos - &gt;等)。

将几个基本类型作为相同方法的参数传递并不好,因为参数本身并不多见,您可以在方法调用中轻易地交换两个相同类型的参数。