GLib Collections Sample ​
These examples use GLib.List and GLib.HashTable. For richer generic containers (sets, multimaps, orderings), see Vala collections: libgee.
List example ​
Save as list.vala:
vala
int main (string[] args) {
var list = new List<string> ();
list.append ("one");
list.append ("two");
list.append ("three");
stdout.printf ("list.length () = %u\n", list.length ());
// Traditional iteration
for (int i = 0; i < list.length (); i++) {
stdout.printf ("%s\n", list.nth_data (i));
}
// Comfortable iteration
foreach (string element in list) {
stdout.printf ("%s\n", element);
}
return 0;
}Compile and run ​
shell
valac list.vala
./listHash table example ​
Save as hashmap.vala:
vala
int main (string[] args) {
var hash = new HashTable<string, string> (str_hash, str_equal);
hash.insert ("1", "one");
hash.insert ("2", "two");
foreach (string key in hash.get_keys ()) {
stdout.printf ("%s => %s\n", key, hash.lookup (key));
}
return 0;
}Compile and run ​
shell
valac hashmap.vala
./hashmap