我正在寻找一个适合我的问题的数据结构。我想尽可能高效地使用两个键选择节点对象。插入和删除也需要高效。基本上每个节点对象都有一对两个键。这些键是唯一的,但单个键不是唯一的。我需要能够选择具有特定值的一组节点中的一个键。
例如:
Node1拥有a1和b1两个键
Node2拥有a1和b2两个键
Node3拥有a2和b2两个键
我希望能够选择具有a1,b1键的节点,同时也能选择所有具有b2作为第二个键的节点。
当然,我可以制作两个HashMap(每个键一个),但这种方法有些丑陋,因为当我添加或删除某些内容时,我必须在两个映射中都执行此操作。由于会经常添加和删除内容,所以我更喜欢一次完成此操作。有人有关于如何做到这一点的想法吗?
显然,拥有一个将两个键合并在一起的单个键并不能解决问题,因为我还需要能够搜索单个键而不必搜索整个映射。那不是很有效率。这是一个效率问题。我可以仅为特定键搜索映射中的每个条目,但相反,我更想使用哈希,以便可以立即使用其中一个键选择多个节点对象。
我不想要像MultiKeyMap这样的东西,因为在这种数据结构中,第一个键始终保持不变,您只能添加键而不能用不同的键替换第一个键。我希望能够在第一个键和第二个键之间切换。
我需要存储具有相同键的多个对象和不同键的多个对象。如果您看一下示例,就会发现两个键加在一起总是唯一的。因此,这可以视为单个键,因此我不会在同一个键下存储多个对象。但是,如果查看单个键,则这些键不是唯一的,因此我希望存储由单个键引用的多个对象。
例如:
Node1拥有a1和b1两个键
Node2拥有a1和b2两个键
Node3拥有a2和b2两个键
我希望能够选择具有a1,b1键的节点,同时也能选择所有具有b2作为第二个键的节点。
当然,我可以制作两个HashMap(每个键一个),但这种方法有些丑陋,因为当我添加或删除某些内容时,我必须在两个映射中都执行此操作。由于会经常添加和删除内容,所以我更喜欢一次完成此操作。有人有关于如何做到这一点的想法吗?
显然,拥有一个将两个键合并在一起的单个键并不能解决问题,因为我还需要能够搜索单个键而不必搜索整个映射。那不是很有效率。这是一个效率问题。我可以仅为特定键搜索映射中的每个条目,但相反,我更想使用哈希,以便可以立即使用其中一个键选择多个节点对象。
我不想要像MultiKeyMap这样的东西,因为在这种数据结构中,第一个键始终保持不变,您只能添加键而不能用不同的键替换第一个键。我希望能够在第一个键和第二个键之间切换。
我需要存储具有相同键的多个对象和不同键的多个对象。如果您看一下示例,就会发现两个键加在一起总是唯一的。因此,这可以视为单个键,因此我不会在同一个键下存储多个对象。但是,如果查看单个键,则这些键不是唯一的,因此我希望存储由单个键引用的多个对象。