【发布时间】:2019-02-14 02:46:35
【问题描述】:
我想知道,有没有办法在映射中为同一个键放置多个值?在我的任务中,我要将以下内容放在地图上:
键(AnimalType)值(AnimalType 中的AnimalType)
哺乳动物:鲸蝠鹿狮子|老虎|猎豹
鸟:鸵鸟鹦鹉
鱼:金鱼大白|tigerShark
爬行动物:鳄鱼龟|乌龟
带有“|”的字符串on 它的意思是“或”,因此在哺乳动物组中,它只能是鲸鱼、蝙蝠、鹿和后三种中的任何一种,而不是所有三种(狮子、老虎或猎豹)。有没有办法让 Mammal、Bird、Fish 和 Reptile 成为键,而 ':' 右侧的字符串是值?仅在这种情况下,并非所有这些都应该是值,因为我必须在狮子、老虎和猎豹或任何带有“|”的字符串之间进行选择在他们。如果我的问题没有任何意义,请在下面评论,我会澄清这对我来说很难用语言表达。我将感谢您提供的任何帮助。谢谢!
【问题讨论】:
-
使用
List并将其映射到您的密钥 -
目前尚不清楚它将如何使用,以及“and”或“or”周围的语义是什么。例如,“蝙蝠”和“狮子”有什么区别(除了后者通常不会飞)?看来你需要一个映射的组合,然后像
mammel -> whale, bat, deer, felidae和felidae这样的类型层次结构可以是lion | tiger | cheetah。 -
最简单的方法。如果可以导入库,就是使用guava multimap。 ArrayListMultiMap 可能是首选类别。
标签: java dictionary data-structures