Categorygithub.com/StudioSol/set
modulepackage
1.0.0
Repository: https://github.com/studiosol/set.git
Documentation: pkg.go.dev

# 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

# Functions

NewLinkedHashSet returns a new LinkedHashSet with the provided items.
NewLinkedHashSetINT returns a new LinkedHashSetINT with the provided items.
NewLinkedHashSetINT64 returns a new LinkedHashSetINT64 with the provided items.
NewLinkedHashSetString returns a new LinkedHashSetString with the provided items.

# Structs

LinkedHashSet linked hash set implementation using linkedHashMap as its underlying data structure.
LinkedHashSetINT linked hash set implementation using linkedHashMap as its underlying data structure.
LinkedHashSetINT64 linked hash set implementation using linkedHashMap as its underlying data structure.
LinkedHashSetString linked hash set implementation using linkedHashMap as its underlying data structure.