Set

public class Set extends BasicEntity<SetInstance>

Represents an AMPL set. In case of not indexed sets, this class exposes functionalities of a Java Set for accessing its elements. The members of the set can be strings, double numbers or tuples. Moreover, the inherited Set.getValues can be used to get all the members in DataFrame class.

All these methods throw an UnsupportedOperationException if called for an indexed set.

In case of indexed sets, use the method Set.get to obtain the objects of type SetInstance, from which to access all properties (see section Access to instances and values for further information on how to access set instances).

Data can be assigned to the set using the methods Set.setValues, or using AMPL.setData and an object of class DataFrame.

Constructors

Set

public Set(Entity entity)

Constructor

Set

protected Set(SetBase impl)

Methods

arity

public int arity()

The dimension of s, or number of components in each member of this set

contains

public boolean contains(Object o)

Check contents.

See SetInstance.contains.

Valid only for not indexed sets.

Parameters
  • o – Tuple to be searched for

Returns

True if the object is present

containsAll

public boolean containsAll(double[] c)

Check if the sets contains all the elements in the collection c. Each element in the collection can be a double, a String, a Tuple or an array. In case of arrays, each array is considered as a Tuple.

See SetInstance.containsAll.

Valid only for not indexed sets.

Parameters
  • c – The collection containing the elements to find.

containsAll

public boolean containsAll(int[] c)

containsAll

public boolean containsAll(String[] c)

containsAll

public boolean containsAll(Collection<? extends Object> c)

get

public SetInstance get()

Get the set instance (for not indexed sets)

Throws

get

public final SetInstance get(Object... key)

Get the set instance corresponding to the specified key. See Access to instances and values for further information on how the key can be specified.

Throws
Returns

The instance corresponding to the specified key. Null if the specified key is not present.

get

public final SetInstance get(Tuple key)

Get the set instance corresponding to the specified key (passed as a Tuple). See Access to instances and values for further information on how the key can be specified.

Parameters
  • key – The indexing tuple of the instance to be found

Throws
Returns

The instance corresponding to the specified key. Null if the specified key is not present.

getValues

public DataFrame getValues()

Returns a DataFrame containing all the members of this set. The DataFrame will have a number of index columns equal to the arity of this set and a number of rows equal to the number of members.

impl

SetBase impl()

isEmpty

public boolean isEmpty()

Return true if the set is empty.

Valid only for not indexed sets.

iterator

public Iterator<SetInstance> iterator()

members

public MemberRange members()

If the set is not indexed, get the iterator for this set, allowing easy access to its elements, as in:

ampl.eval("set A := {'a', 'b', 3};"); for (Object o :
ampl.getSet("A")) { // ... }
Throws

setValues

public void setValues(DataFrame data)

setValues

public void setValues(Tuple[] objects)

Assign values to the this set.

See SetInstance.setValues for the usage instructions.

setValues

public void setValues(Tuple value)

setValuesFlattened

public void setValuesFlattened(double... objects)

setValuesFlattened

public void setValuesFlattened(String... objects)

size

public int size()

Get the size of the set (number of elements) (valid only for not indexed sets)

Throws

toArray

public Object[] toArray()

Convert this set to an array.

Valid only for not indexed sets.

toSet

public java.util.Set<Object> toSet()

Convert this set to a Java set.

Valid only for not indexed sets.