https://github.com/ghosind/collection
Generics collections framework for Golang.
https://github.com/ghosind/collection
collections collections-framework generics-collections generics-in-golang golang golang-collections golang-library
Last synced: about 1 month ago
JSON representation
Generics collections framework for Golang.
- Host: GitHub
- URL: https://github.com/ghosind/collection
- Owner: ghosind
- License: mit
- Created: 2022-07-20T09:27:23.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-03T09:54:51.000Z (about 2 months ago)
- Last Synced: 2025-04-03T10:35:42.754Z (about 2 months ago)
- Topics: collections, collections-framework, generics-collections, generics-in-golang, golang, golang-collections, golang-library
- Language: Go
- Homepage: https://pkg.go.dev/github.com/ghosind/collection
- Size: 115 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# collection

[](https://codecov.io/gh/ghosind/collection)
[](https://github.com/ghosind/collection)

[](https://pkg.go.dev/github.com/ghosind/collection)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`](https://pkg.go.dev/github.com/ghosind/collection/set#HashSet): The implementation of Set based on Go built-in map structure.
- [`SyncSet`](https://pkg.go.dev/github.com/ghosind/collection/set#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`](https://pkg.go.dev/github.com/ghosind/collection/dict#HashDict): The implementation of Dictionary based on Go built-in map structure.
- [`SyncDict`](https://pkg.go.dev/github.com/ghosind/collection/dict#SyncDict): The thread safe implementation of dictionary based on `sync.Map`.
## Installation
You can install this package by the following command.
```sh
go get -u github.com/ghosind/collection
```After installation, you can import it by the following code.
```go
import "github.com/ghosind/collection"
```## Examples
### HashSet Examples
Create a string set, add and test elements in the set.
```go
// 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
```go
// 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](LICENSE) file for details.