I will be receiving strings one by one from a framework, I need to hold them in some container and delete some of them later. Now I have 2 options :-
- Create a slice of strings and then delete some items by look up
- Create a map of string with key=string and data=dummy data so that deletion is easy
So personally I would prefer second option. Is that correct choice? Do we have any better way?
If you need to access and delete strings by value, then a
map[string]struct{}
would give you better performance provided the number of strings is large enough and there are no duplicates. If there are duplicates and when you delete you have to delete only one, then amap[string]int
would work, with the value being the number of times the string appears. If the number of strings are not large, then acontainer/list
might work better than a slice because you can delete strings from it in constant time. A slice would outperform others only for small sizes, for all practical cases, deletion would require copying part of the slice.