Tuples

Tuples

在 Java 中没有直接对应的元组数据结构。元组是函数式编程语言中的一个常见概念。元组是不可变的,可以以类型安全的方式容纳多个不同类型的对象。Vavr 将 Tuple 带到了 Java 8 中。Tuples 的类型有 Tuple1、Tuple2 到 Tuple8,取决于它们要取的元素数量。目前有一个上限是 8 个元素。我们像 tuple._n 那样访问元组的元素,其中 n 类似于数组中索引的概念。

public void whenCreatesTuple_thenCorrect1() {
    Tuple2<String, Integer> java8 = Tuple.of("Java", 8);
    String element1 = java8._1;
    int element2 = java8._2();

    assertEquals("Java", element1);
    assertEquals(8, element2);
}

元组的作用在于存储一组固定的任何类型的对象,这些对象最好作为一个单元来处理,并且可以传递。一个比较明显的用例是在 Java 中从一个函数或方法中返回多个对象。

@Test
public void whenCreatesTuple_thenCorrect2() {
    Tuple3<String, Integer, Double> java8 = Tuple.of("Java", 8, 1.8);
    String element1 = java8._1;
    int element2 = java8._2();
    double element3 = java8._3();

    assertEquals("Java", element1);
    assertEquals(8, element2);
    assertEquals(1.8, element3, 0.1);
}
上一页
下一页