All Bundles

CompareVector<H:Compare>

Growable array of comparable generics

Operations

Code example:

function : Example() ~ Nil {
   # insert elements
   vector := Collection.CompareVector->New()<IntRef>;
   vector->AddBack(4);
   vector->AddBack(1);
   vector->AddBack(5);
   vector->AddBack(9);
   vector->AddBack(2);
   vector->AddBack(5);

   # remove last item
   vector->RemoveBack();

   # get size
   vector->Size()->PrintLine();
   
   # get elements
   (vector->Get(0) + vector->Get(1))->PrintLine();

   # sort elements
   vector->Sort();

   # print all items with a loop
   each(item := vector) {
   item->PrintLine();
   };

   # print all items with a function
   vector->Each(Show(IntRef) ~ Nil);
}

function : Show(value : IntRef) ~ Nil {
   value->PrintLine();
}

New

Default constructor

New()

Copy constructor

New(values:H[])
Parameters
NameTypeDescription
valuesHvalues to copy

Copy constructor

New(values:Vector<H>)
Parameters
NameTypeDescription
valuesVector<H>values to copy

AddBack

Adds a value to the end

method : public : AddBack(value:H) ~ Nil
Parameters
NameTypeDescription
valueHvalue to append

BinarySearch

Performs a binary search O(log n)

method : public : native : BinarySearch(value:H) ~ Int
Parameters
NameTypeDescription
valueHvalue to search for

Return
TypeDescription
Intindex of found value, -1 if not found

Compress

Compresses the Vector freeing unused memory

method : public : Compress() ~ Nil

Each

Function called for each element

method : public : Each(f:(H)~Nil) ~ CompareVector<H>
Parameters
NameTypeDescription
f(H)~Nilfunction called

Empty

Clears the vector

method : public : Empty() ~ Nil

Filter

Uses the given function to filter out values

method : public : Filter(f:(H)~Bool) ~ CompareVector<H>
Parameters
NameTypeDescription
f(H)~Boolfunction to use a filter. If the function evaluates to true the value is added to the collection.

Return
TypeDescription
CompareVector<H>filtered vector

Find

Finds a given value in the vector via linear search

method : public : Find(value:H) ~ Int
Parameters
NameTypeDescription
valueHvalue to search for

Return
TypeDescription
Intindex of found value, -1 if not found

First

Gets the first value

method : public : First() ~ H
Return
TypeDescription
Hfirst value, or Nil if not set

Get

Gets an indexed value

method : public : Get(index:Int) ~ H
Parameters
NameTypeDescription
indexIntindex

Return
TypeDescription
Hvalue

Has

Check of the given value is in the vector

method : public : Has(value:H) ~ Bool
Parameters
NameTypeDescription
valueHvalue to check for

Return
TypeDescription
Booltrue if found, false otherwise

IsEmpty

Checks to see if the vector is empty

method : public : IsEmpty() ~ Bool
Return
TypeDescription
Booltrue if empty, false otherwise

Last

Gets the last value

method : public : Last() ~ H
Return
TypeDescription
Hlast value, or Nil if not set

Limit

Returns a limited list

method : public : Limit(l:Int) ~ CompareVector<H>
Parameters
NameTypeDescription
lIntlimit

Return
TypeDescription
CompareVector<H>limited list

Map

Maps the given function to each value in the vector

method : public : Map(f:(H)~H) ~ CompareVector<H>
Parameters
NameTypeDescription
f(H)~Hfunction to apply

Return
TypeDescription
CompareVector<H>newly calculated vector

Reduce

Uses the given function to reduce the values

method : public : Reduce(a:H, f:(H,H)~H) ~ H
Parameters
NameTypeDescription
aHinitial value (i.e. accumulator)
f(H,H)~Hfunction to use a reduce

Return
TypeDescription
Hreduced vector

Remove

Removes an indexed value

method : public : Remove(i:Int) ~ H
Parameters
NameTypeDescription
iIntindex

Return
TypeDescription
Hvalue

RemoveBack

Removes the last value

method : public : RemoveBack() ~ H
Return
TypeDescription
Hvalue

Reverse

Reverses element order

method : public : Reverse() ~ CompareVector<H>
Return
TypeDescription
CompareVector<H>reversed vector, if the vector is empty or hold 1 item then the original list is returned

Set

Sets an indexed value

method : public : Set(value:H, index:Int) ~ Bool
Parameters
NameTypeDescription
valueHvalue
indexIntindex

Size

Size of vector

method : public : Size() ~ Int
Return
TypeDescription
Intsize of vector

Sort

Sorts the values in the vector

method : public : native : Sort() ~ Nil

ToArray

Converts the vector into an object array

method : public : ToArray() ~ H[]
Return
TypeDescription
Hobject array

ToString

Formats the collection into a string. If an element implements the 'Stringify' interface, it's 'ToString()' is called.

method : public : ToString() ~ String
Return
TypeDescription
Stringstring representation