Skip to content

ghosind/collection

Repository files navigation

collection

Test codecov Latest version License Badge Go Reference

Generics collections framework for Golang.

IMPORTANT NOTICE: This package requires Go version 1.18+.

Overview

This package provides the following data structure interfaces and implementations:

  • Collection: The root interface of most of the structures in this package (without Dictionary).

  • Set: A collection interface that contains no duplicate elements.

    • HashSet: The implementation of Set based on Go built-in map structure.

    • ConcurrentHashSet: The thread safe implementation of Set based on Go built-in map structure.

  • Dictionary: A object that maps keys to values, and it cannot contain duplicate key.

Installation

You can install this package by the following command.

go get -u github.com/ghosind/collection

After installation, you can import it by the following code.

import "github.com/ghosind/collection"

Examples

HashSet Examples

Create a string set, add and test elements in the set.

// import "github.com/ghosind/collection/set"

fruits := set.NewHashSet[string]()

fruits.Add("Apple")
fruits.Add("Banana")

log.Print(fruits.Contains("Banana")) // true
log.Print(fruits.Contains("Lemon"))

HashDictionary Examples

// import "github.com/ghosind/collection/dict"

languages := dict.NewHashDictionary[string, int]()

languages.Put("C", 1972)
languages.Put("Go", 2007)

log.Print(languages.GetDefault("C", 0)) // 1972