📚 set - Awesome Go Library for Data Structures and Algorithms

Go Gopher mascot for set

Simple set data structure implementation in Go using LinkedHashMap.

🏷️ Data Structures and Algorithms
📂 Frameworks for performing ELT / ETL
27 stars
View on GitHub 🔗

Detailed Description of set

Set

Build Status codecov Go Report Card GoDoc

Set is a simple Set data structure implementation in Go (Golang) using LinkedHashMap.

This library allow you to get a set of int64 or string without duplicated items.

Usage

package main

import (
	"fmt"

	"github.com/StudioSol/set"
)

func main() {
	duplicatedInt64 := []int64{1, 1, 2, 2, 3, 3}

	unduplicatedInt64 := set.NewLinkedHashSetINT64(duplicatedInt64...)

	// Get a []int64 from set
	unduplicatedArray := unduplicatedInt64.AsSlice()
	fmt.Println(unduplicatedArray) // will print [1 2 3]

	// Get the Length from set
	fmt.Println(unduplicatedInt64.Length()) // will print 3

	// Add new items in set
	unduplicatedInt64.Add(1, 2, 3, 4)
	fmt.Println(unduplicatedInt64.AsSlice()) // will print [1 2 3 4]

	// Check if item is in set
	fmt.Println(unduplicatedInt64.InArray(1)) // will print true
	fmt.Println(unduplicatedInt64.InArray(5)) // will print false

	// Get a []interface{} from set
	interfaceList := unduplicatedInt64.AsInterface()
	fmt.Println(interfaceList) // will print [1 2 3 4]

	// Allow to iter over set
	for i := range unduplicatedInt64.Iter() {
		fmt.Println(i)
	}

	// Remove items from set
	unduplicatedInt64.Remove(0, 1, 2, 3)
	fmt.Println(unduplicatedInt64.AsSlice()) // will print [4]
}

// You have same methods to LinkedHashSetString