HashSet<G>

Реализует: Iterable<G>, Collection<G>, Set<G>

Набор из элементов типа G. Дубликаты выявляются через вычисление хэш каждого ключа, что можно настроить через передачу указателей на функции хэширования и проверки равенства ключей нужным вам способом.

Вы можете получить вид коллекции только для чтения через свойство read_only_view, напр. my_map.read_only_view. Оно вернет вам оболочку, которая будет иметь тот же интерфейс, что и коллекция внутри, но без возможности модифицировать данную коллекцию.

Когда использовать

Эта реализация лучше подходит для сильно разнородных значений. В случае высокого значения избыточности хэшей или большого количества данных предпочтение отдается реализации дерева, такой как TreeSet .

Set Example

Sets are unordered and do not contain duplicate elements.

using Gee;

void main () {
    var my_set = new HashSet<string> ();
    my_set.add ("one");
    my_set.add ("two");
    my_set.add ("three");
    my_set.add ("two");         // will not be added because it's a duplicate
    foreach (string s in my_set) {
        stdout.printf ("%s\n", s);
    }
}

Compile and Run

$ valac --pkg gee-0.8 gee-set.vala
$ ./gee-set

Content:

Properties:

Creation methods:

Methods:

Полный список коллекций см здесь.

Last updated