List (Arraylist function)
Construct and populate a new Arraylist (Arraylist class)
The List shared function is a virtual constructor, or factory method, for Arraylistd. List invokes the creation of a new Arraylist instance, then populates that instance with items that are, respectively, the values of the method arguments.
Syntax
%newList = [%(Arraylist Of itemType):]List( itemList)
Syntax terms
%newlist | A declared or existing Arraylist object. |
---|---|
[%(Arraylist Of itemType):] | The optional class name in parentheses denotes a virtual constructor method. See "Usage notes," below, for more information about invoking a collection constructor. |
itemList | A comma-delimited set of a combination of one or more of these:
Each of these, from left to right, becomes an item or items in the resultant new Arraylist, al. The ability to include a collection in itemList was added in Sirius Mods 7.9. |
Usage notes
- List is a virtual constructor and as such can be called with no method object, with an explicit class name, or with an object variable, even if that object is null:
%al = List(items) %al = %(Arraylist of float):List(items) %al = %al:List(items)
Note: As shown above, when explicitly indicating the class, both the collection and the item datatype must be specified just as they are on the collection variable's declaration:
%al is collection Arraylist of longstring %al = %(Arraylist of longstring):List('Jack', 'and', 'Jill')
- The maximum number of items values is 62.
- You can also use the List method in contexts where an Arraylist object is a method parameter.
- List is available in Sirius Mods Version 7.3 and later.
Examples
Creating an Arraylist of numbers
The following List method call creates a new Arraylist instance of 11 integer items that begins with 1 and whose subsequent items are, respectively, the sum of the preceding two integers:
%fib is collection arraylist of float %fib = list(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89)
Creating an Arraylist of objects
The following List call creates a new Arraylist instance whose items are objects of user class freight:
class freight public variable a is float variable b is float constructor newf(%a is float, %b is float) end public ... end class ... %ark is arraylist of object freight %ark = list(newf(11, 14), newf(4, 6), newf(9, 77), - newf(-7, 1234))
Creating an Arraylist from objects and Arraylists
Under Sirius Mods 7.9 and later it is possible to include collections in the list of items being added. If a collection is in the list, each item in the collection is added to the target Arraylist.
The following List call creates a new Arraylist instance whose items are objects of user class freight, some of them from existing Arraylists %ark1
and %ark2
and some newly created objects.
class freight public variable a is float variable b is float constructor newf(%a is float, %b is float) end public ... end class ... %ark is arraylist of object freight %ark1 is arraylist of object freight %ark2 is arraylist of object freight %ark = list(newf(11, 14), %ark1, newf(9, 77), %ark2, - newf(-7, 1234))