Java:如何创建一个元组数组

5
如何在JSP(Java)中创建元组数组,例如 (a:1,b:2) (c:3,d:4) ... ...
6个回答

3
创建一个元组类,类似于以下形式:
class Tuple {
    private Object[] data;
    public Tuple (Object.. members) { this.data = members; }
    public void get(int index) { return data[index]; }
    public int getSize() { ... }
}

然后只需创建一个元组实例的数组。


2
这是Java吗?为什么投票数这么高?在数组上使用"data.size()"?没有越界错误检查吗?为什不使用已有的类,如ArrayList,它实现了更好的此行为? - Pindatjuh
3
@Pindatjuh,为什么你不提供自己的回答呢?看起来你有一些东西可以分享。 - Anthony Forloney
@Pindatjuh,我说的是“类似这样的东西”。这只是一个类的框架,只是为了让他理解它应该做什么。它还没有经过任何测试。 - Amir Rachum
@Pindatjuh,元组通常是不可变的,所以这是一个相对好的表示方式...虽然构造函数真正应该是public Tuple而不是public void Tuple - Mark Elliot
自从我们登陆月球已经50年了,元组仍然不是Java核心库的一部分,哇哦! - coda

2
如果您想要一个任意大小的元组,类似于Perl哈希表的话,可以使用 Map<K,V> (如果您有固定类型的键值 - 您的示例看起来像是可以使用 Map<Character,Integer> - 否则使用原始类型)。查找Java集合以获取有关各种实现的更多详细信息。
给定这些元组,如果您想将它们放入顺序集合中,我会使用List(再次查找集合库)。
因此,您最终将获得:
List<Map<K,V>> listOfTuples

如果您需要更具体的内容(例如,元组中始终有x1、x2、x3等),请考虑将映射设置为EnumMap - 您可以限制您拥有的键,并且如果在创建期间指定默认值(或其他约束),则保证会输出某些内容。


1

Java中没有默认的pair/n-tuple类,你需要自己编写。


1
你可以使用 HashSet 类。

0

如果您正在处理具有固定属性名称和大小的元组,则定义自己的简单数据类,然后定义该类的数组。

另一方面,如果您希望属性名称灵活,并在运行时确定,请使用Map结构。在上面的示例中,似乎HashMap<String,Integer>可以胜任此工作。您可能希望将其包装以减少其功能,并可能还要添加更具体的功能。


0

我知道我来晚了,但是一个点的数组应该可以胜任。

请点击这里查看有关点的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接