Util


Opis

Moduł Util udostępnia różnego rodzaju funkcje użytkowe do wykonywania operacji na tablicach, listach, mapach.

Operacje na tablicach

Do tworzenia tablic służą następujące funkcje

Do określania długości tablicy (liczby elementów w tablicy) służy funkcja Long length(Object[] table), gdzie table oznacza tablicę.

Do wstawiania elementów do tablicy służy funkcja void set(Object[] table, Long n, Object value), która n-temu elementowi tablicy table przypisuje wartość value.

Do pobierania elementów z tablicy służy funkcja void get(Object[] table, Long n), która zwraca wartość n-tego elementu tablicy table.

Do wyszukiwania elementów w tablicy służy funkcja Long find(Object[] table, Object object), która zwraca indeks elementu tablicy table, który ma wartość object. Jeżeli element o wartości object nie istnieje w tablicy, zwracana jest wartość null.

Do sortowania elementów tablicy w kolejności ich wartości służy funkcja void sort(Object[] table), której argumentem jest tablica do posortowania.

Aby odwrócić kolejność elementów tablicy należy użyć funkcji Object[] reverse(Object[] table), która zwraca tablicę elementów w kolejności odwrotnej w stosunku do table.

UWAGA

Jeżeli drugi argument metody emptyTable będzie referencją, wówczas każdy element utworzonej tablicy będzie referencją do tego samego obiektu a nie referencją do klonu obiektu. W rezultacie wynikiem wykonania kodu

$=(@twoD, $emptyTable(3, $emptyTable(3)))
$set((Object[])$get($@twoD, 0), 0, "Element (0,0)")
$@twoD

będzie

[[Element (0,0) ; null ; null] ; [Element (0,0) ; null ; null] ; [Element (0,0) ; null ; null]]

a nie jak można by oczekiwać

[[Element (0,0) ; null ; null] ; [null ; null ; null] ; [null ; null ; null]]

Operacje na tablicach bajtów

Do tworzenia tablic bajtów służą następujące funkcje

Do określania długości tablicy bajtów (ilości bajtów w tablicy) służy funkcja Long length(byte[] value), gdzie value jest tablicą bajtów.

Do ustawiania wartości bajtów w tablicy służy funkcja void set(byte[] table, Long n, Long value), która n-temu bajtowi w tablicy table przypisuje wartość value.

Do pobierania wartości bajtów z tablicy służy funkcja Long get(byte[] table, Long n), która zwraca wartość n-tego bajtu z tablicy table.

Operacje na listach

Do tworzenia list służą funkcje

Do określania właściwości listy służą następujące funkcje

Do umieszczania elementów na liście służą następujące funkcje

Do ustawiania wartości elementów listy służy funkcja void set(List list, Long n, Object value), która n-temu elementowi listy list przypisuje wartość value.

Do pobierania elementów z listy służą następujące funkcje

Do usuwania elementów listy służą następujące funkcje

Do sortowania elementów listy służą funkcje

Do odwracania kolejności elementów listy służy funkcja void reverse(List list), której argumentem jest lista, której kolejność elementów ma zostać odwrócona.

Operacje na mapach

Do tworzenia map służą funkcje

Do określania właściwości mapy służą następujące funkcje

Do umieszczania elementów w mapie służą następujące funkcje

Do pobierania elementów z mapy służą następujące funkcje

Do usuwania elementów z mapy służy funkcja

Inne funkcje

Pozostałe funkcje zaimplementowane w module Util

Przykłady

Operacje na tablicach

$=(@table, $util.emptyTable(5))

$util.set($@table, 0, "r")
$util.set($@table, 1, "n")
$util.set($@table, 2, "w")
$util.set($@table, 3, "o")
$util.set($@table, 4, "g")
$util.sort($@table)

$=(@element, (String)null)
$for(@element, $util.reverse($@table), {$@element})

 

Operacje na tablicach bajtów

$=(@bytes, $util.emptyByteTable(6))

$util.set($@bytes, 0, 106)
$util.set($@bytes, 1, 80)
$util.set($@bytes, 2, 65)
$util.set($@bytes, 3, 76)
$util.set($@bytes, 4, 73)
$util.set($@bytes, 5, 79)

$toString($@bytes, "ASCII")

 

Operacje na listach - wyświetlenie elementów z gałęzi drzewa rozpoczynającej się elementem o identyfikatorze 3

$=(@tree, $util.asList([[1, null], [2, 1], [3, 1], [4, 1], [5, 3], [6, 3], [7, 6]]))
$=(@list, $util.sort($util.getColumn($util.getChildren($@tree, 3, true), 0), 0))

$=(@element, (Object[])null)
$for(@element, $@list, {
  $@element<br>
})

 

Operacje na mapach

$=(@digits, $util.emptyMap())

$util.put($@digits, 0, "zero")
$util.put($@digits, 1, "jeden")
$util.put($@digits, 2, "dwa")
$util.put($@digits, 3, "trzy")
$util.put($@digits, 4, "cztery")
$util.put($@digits, 5, "pięć")
$util.put($@digits, 6, "sześć")
$util.put($@digits, 7, "siedem")
$util.put($@digits, 8, "osiem")
$util.put($@digits, 9, "dziewięć")
$util.put($@digits, 10, "dziesięć")

$util.remove($@digits, 10)

$=(@digit, (Long)null)
$for(@digit, $util.mapKeys($@digits), {
  $@digit => $util.get($@digits, $@digit) <br>
})

API

http://jpalio.torn.com.pl/modules/palio/modules/Util.html