在Java中使用元组类型的利器javatuples

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lijingjingchn/article/details/87279294

1. 前言

Java本身并没有内置元组这一项特性,要使用元组必须自行实现,所幸现在这些编程语言都支持泛型, 实现非内置元组也变的异常简单, 但是毕竟是非语言内置的语法元素,使用起来肯定不如原生元组来的便捷。

下面介绍一个第三方的Java元组库类库,名称叫做Javatuples,有自己的官方主页,javatuples ,在Java元组库领域差不多起着垄断的地位了。javatuples是最简单的Java类库之一。设计目标是提供一组在Java中可以使用“tuples”的类。

2. 什么是“tuples”

一个tuple就是一个相互之间不需要有关联的对象的序列。比如:[23, “Saturn”, java.sql.Connection@li734s]可以看做是一个具有三个元素的tuple(一个triplet),包含一个Integer、一个String、一个JDBC Connection对象。

Tuples和Lists/Arrays的比较:

  • Lists (X[])和Arrays (X[]):

    (1)可以包含“任意”数量的元素。
    (2)所有元素必须是X的实例。

  • Tuples:

    (1)只能包含固定数量的元素。
    (2)元素类型任意。
    (3)类型安全。

3. javatuples的tuple类

  • javatuples的tuple类
    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)
    

4. 使用示例

  1. 创建Java Pair元组

    Pair<A, B> pair = new Pair<A, B>(value1, value2);
    
  2. 创建Java Triplet元组

    Triplet<A, B, C> triplet = new Triplet<A, B, C>(value1, value2, value3);
    

猜你喜欢

转载自blog.csdn.net/lijingjingchn/article/details/87279294