Class Tuple

java.lang.Object
org.miaixz.bus.core.lang.tuple.Tuple
All Implemented Interfaces:
Serializable, Cloneable, Iterable<Object>

public class Tuple extends Object implements Iterable<Object>, Serializable, Cloneable
不可变数组类型(元组),用于多值返回 多值可以支持每个元素值类型不同
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • Tuple

      public Tuple(Object... members)
      构造
      Parameters:
      members - 成员数组
  • Method Details

    • of

      public static Tuple of(Object... members)
      构建Tuple对象
      Parameters:
      members - 成员数组
      Returns:
      Tuple
    • get

      public <T> T get(int index)
      获取指定位置元素
      Type Parameters:
      T - 返回对象类型
      Parameters:
      index - 位置
      Returns:
      元素
    • getMembers

      public Object[] getMembers()
      获得所有元素
      Returns:
      获得所有元素
    • toList

      public final List<Object> toList()
      将元组转换成列表
      Returns:
      转换得到的列表
    • setCacheHash

      public Tuple setCacheHash(boolean cacheHash)
      缓存Hash值,当为true时,此对象的hash值只被计算一次,常用于Tuple中的值不变时使用。 注意:当为true时,member变更对象后,hash值不会变更。
      Parameters:
      cacheHash - 是否缓存hash值
      Returns:
      this
    • size

      public int size()
      得到元组的大小
      Returns:
      元组的大小
    • contains

      public boolean contains(Object value)
      判断元组中是否包含某元素
      Parameters:
      value - 需要判定的元素
      Returns:
      是否包含
    • stream

      public final Stream<Object> stream()
      将元组转成流
      Returns:
    • parallelStream

      public final Stream<Object> parallelStream()
      将元组转成并行流
      Returns:
    • sub

      public final Tuple sub(int start, int end)
      截取元组指定部分
      Parameters:
      start - 起始位置(包括)
      end - 终止位置(不包括)
      Returns:
      截取得到的元组
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • iterator

      public Iterator<Object> iterator()
      Specified by:
      iterator in interface Iterable<Object>
    • spliterator

      public final Spliterator<Object> spliterator()
      Specified by:
      spliterator in interface Iterable<Object>
    • clone

      public Tuple clone()
      Overrides:
      clone in class Object