Skip to content

ghosind/collection

Folders and files

NameName
Last commit message
Last commit date
Mar 24, 2025
Apr 7, 2025
Dec 17, 2024
Apr 8, 2025
Oct 10, 2024
Aug 23, 2022
Jul 20, 2022
Dec 18, 2024
Apr 8, 2025
Oct 12, 2024
Apr 7, 2025
Apr 7, 2025
Oct 12, 2024
Oct 12, 2024
Dec 6, 2023
Aug 21, 2023

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.

    • SyncSet: The thread safe implementation of Set based on sync.Map.

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

    • HashDict: The implementation of Dictionary based on Go built-in map structure.

    • SyncDict: The thread safe implementation of dictionary based on sync.Map.

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.NewHashDict[string, int]()

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

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

License

This project is licensed under the MIT License - see the LICENSE file for details.