Popularity
3.3
Growing
Activity
0.5
Declining
7
17
4

Programming language: Go
Tags: Data Structures    

set alternatives and similar packages

Based on the "Data Structures" category

Do you think we are missing an alternative of set or a related project?

Add another 'Data Structures' Package

README

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