双向映射或哈希包是一种关联数据结构,其中(键、值)对形成一对一的对应。因此二元关系在每个方向上都是有效的:值也可以作为键对键。因此pair (A,b)提供了’ A ‘和’b’之间的唯一耦合,因此当’ A ‘用作键时可以找到’b’,当’b’用作键时可以找到’ A ‘。
type Map
func New() *Map
func (m *Map) Clear()
func (m *Map) Empty() bool
func (m *Map) FromJSON(data []byte) error
func (m *Map) Get(key interface{}) (value interface{}, found bool)
func (m *Map) GetKey(value interface{}) (key interface{}, found bool)
func (m *Map) Keys() []interface{}
func (m *Map) Put(key interface{}, value interface{})
func (m *Map) Remove(key interface{})
func (m *Map) Size() int
func (m *Map) String() string
func (m *Map) ToJSON() ([]byte, error)
func (m *Map) Values() []interface{}
例子
package main
import "github.com/emirpasic/gods/maps/hashbidimap"
// HashBidiMapExample to demonstrate basic usage of HashMap
func main() {
m := hashbidimap.New() // empty
m.Put(1, "x") // 1->x
m.Put(3, "b") // 1->x, 3->b (random order)
m.Put(1, "a") // 1->a, 3->b (random order)
m.Put(2, "b") // 1->a, 2->b (random order)
_, _ = m.GetKey("a") // 1, true
_, _ = m.Get(2) // b, true
_, _ = m.Get(3) // nil, false
_ = m.Values() // []interface {}{"a", "b"} (random order)
_ = m.Keys() // []interface {}{1, 2} (random order)
m.Remove(1) // 2->b
m.Clear() // empty
m.Empty() // true
m.Size() // 0
}