元组可能对有些人似乎有些陌生,平时基本没怎么用,好像也没有什么应用场景,其实并非如此;其实平时所熟悉的关系数库中【纪录】的名称就是【元组】,一条纪录就是一个元组,一个表就是一个关系,纪录组成表,元组生成关系,这个关系数据库的核心概念。
元组在程序设计中并不显得那么不可或缺。有一些编程语言自带元组的语法(python、scala、F#)等,但还有一些比较流行的编程语言却不带(java、JavaScript、c++)等。
元组并没有像数组、对象那样在编程元素中不可缺少,但是,有时候使用它能对编码带来很多好处,尤其当一个函数需要返回多个值的情况下。
有一个第三方的java元组库类库,名称Javatuples;它定义的元组的最大长度为10,定义如下(版本:javatuples-1.2.jar )
Unit<A> (1 element)
Pair<A,B> (2 elements)
Triplet<A,B,C> (3 elements)
Quartet<A,B,C,D> (4 elements)
Quintet<A,B,C,D,E> (5 elements)
Sextet<A,B,C,D,E,F> (6 elements)
Septet<A,B,C,D,E,F,G> (7 elements)
Octet<A,B,C,D,E,F,G,H> (8 elements)
Ennead<A,B,C,D,E,F,G,H,I> (9 elements)
Decade<A,B,C,D,E,F,G,H,I,J> (10 elements)
这些原型类都是泛型类, 所以尖括号中的字母可以使用任意类型来代替。
下面是一个三元组的代码实例: