# Tuple¶

public final class Tuple

An immutable tuple. All methods of this class throw a NullPointerException if a null object reference is passed in any parameter.

## Constructors¶

### Tuple¶

public Tuple(Object... elements)

Constructs a new Tuple from the specified elements.

The elements in a Tuple can be numbers or strings.

All basic Java numeric types are converted to double, as AMPL supports only one numeric type.

## Methods¶

### asStrings¶

Tuple asStrings()

### clone¶

public Tuple clone()

Clone the tuple

### elements¶

public Object[] elements()

Returns a new array containing the tuple elements.

### elementsToStringNoBrackets¶

static String elementsToStringNoBrackets(Object[] elem)

### equals¶

public boolean equals(Object other)

Checks for deep equality

### equalsInAMPL¶

boolean equalsInAMPL(Tuple other)

### formatElement¶

static String formatElement(Object element)

### formatGenericElement¶

static String formatGenericElement(Object element)

### get¶

public Object get(int index)

Returns the element at the specified position in this tuple.

### hashCode¶

public int hashCode()

Hash code of all elements

### insert¶

public void insert(Object[] array, int index)

Inserts the elements of this tuple into the specified array starting from the specified index.

### join¶

public static Tuple join(Object... elements)

Constructs a new Tuple joining the specified elements.

The elements in a Tuple can be numbers, strings, tuples or arrays.

Use this function to construct a tuple for accessing instances of AMPL entities indexed over 2 or more index sets at least one of which is two-dimensional.

For example, accessing the AMPL entity:

var x{{(1,2)}, {'a'}};


can be achieved either via:

Variable x = ampl.getVariable("x");
x.get(1, 2, "a");


or, using this function, as:

Variable x = ampl.getVariable("x");
Tuple t = new Tuple(1, 2);
x.get(Tuple.join(t, "a"));


The very same way, the elements of the tuple created by:

t = Tuple.join(new Object[] { 2, 3 }, 4, "b";);


will be equivalent to

t = new Tuple(2, 3, 4, "b").


or, by joining tuples:

Tuple A = new Tuple(2, 3);
Tuple B = Tuple.join(A, A);


is equivalent to:

Tuple B = new Tuple(2, 3, 2, 3);


Note that to conform with the AMPL type system all basic Java numeric types are converted to double, as AMPL supports only one numeric type (see Tuple.Tuple for more information).

### size¶

public int size()

Returns the number of elements in this tuple.

### subtuple¶

public Tuple subtuple(int from, int to)

Returns a tuple containing the specified range of elements from this tuple.

Parameters: from – the initial index of the range to be copied, inclusive to – the final index of the range to be copied, exclusive. (This index may be equal to size.) ArrayIndexOutOfBoundsException – if from < 0 or to > size() IllegalArgumentException – if from > to

### toString¶

public String toString()

Returns a string of the form (t1,t2,t3) where t1, t2, t3 are the elements of the tuple

### toStringNoBrackets¶

String toStringNoBrackets()

Returns a string of the form t1,t2,t3 where t1, t2, t3 are the elements of the tuple

### toStringSpaceSeparated¶

String toStringSpaceSeparated()

Returns a string like e1 e2 e3, where the strings are in quotes