Popularity
3.8
Declining
Activity
0.0
Stable
27
24
11

Programming language: Go
License: BSD 3-clause "New" or "Revised" License
Tags: Data Structures    

set alternatives and similar packages

Based on the "Data Structures" category.
Alternatively, view set alternatives based on common mentions on social networks and blogs.

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