【发布时间】:2010-05-02 17:44:57
【问题描述】:
如何在 jsp (java) 中创建元组数组 喜欢 (a:1, b:2) (c:3, d:4) ... ...
【问题讨论】:
标签: java jsp data-structures set tuples
如何在 jsp (java) 中创建元组数组 喜欢 (a:1, b:2) (c:3, d:4) ... ...
【问题讨论】:
标签: java jsp data-structures set tuples
创建一个元组类,类似于:
class Tuple {
private Object[] data;
public Tuple (Object.. members) { this.data = members; }
public void get(int index) { return data[index]; }
public int getSize() { ... }
}
然后只需创建一个 Tuple 实例数组。
【讨论】:
ArrayList 这样的现有类,它可以更好地实现这种行为?
public Tuple而不是public void Tuple
如果您想要一个任意大小的元组,perl 哈希样式,请使用 Map<K,V>(如果您有固定类型的键值 - 您的示例看起来像 Map<Character,Integer> 会起作用 - 否则使用原始类型)。查找 java 集合以获取有关各种实现的更多详细信息。
鉴于这些元组,如果您想将它们放入顺序集合中,我会使用 List(再次查找集合库)。
所以你最终得到了
List<Map<K,V>> listOfTuples
如果您需要更具体的内容(例如,您的元组中将始终包含 x1、x2、x3),请考虑将映射设置为 EnumMaps - 您可以限制您拥有的键,并且如果您指定默认值(或创建过程中的一些其他约束)保证某些东西会出来。
【讨论】:
Java 中没有默认的 pair / n-tuple 类;你必须自己动手。
【讨论】:
你可以使用 HashSet 类。
【讨论】:
如果你在处理固定大小的元组,属性的名称是固定的,你自己定义一个简单的数据类,然后定义这个类的数组。
另一方面,如果您希望属性名称灵活且在运行时确定,请使用 Map 结构。在上面的示例中,似乎 HashMap
【讨论】:
我知道我参加聚会迟到了,但一系列积分应该可以完成这项工作。
查看here 以查看有关积分的文档。
【讨论】: