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

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

public Tuple clone()

Clone the tuple

public Object[] elements()

Returns a new array containing the tuple elements.

public boolean equals(Object other)

Checks for deep equality

public Object get(int index)

Returns the element at the specified position in this tuple.

public int hashCode()

Hash code of all elements

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

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

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).

public int size()

Returns the number of elements in this tuple.

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.)
Throws:
public String toString()

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