Groovy中一个键和多个值的示例

时间:2019-05-14 05:10:48

标签: list dictionary groovy

我正在寻找一个示例,该示例如何存储一个键和多个值的示例资格,如下所示:

[name:'Test1',job:'QA',qualifications:['Selenium','Java']]

Map<String,String>=new HashMap<String,String>//not allowing multiple values.

1 个答案:

答案 0 :(得分:0)

您需要知道,您正在使用包含不同键类型条目的映射。在您的情况下,所有值最常见的键类型是Object,因为namejob键的类型是String,而qualifications的类型List<String>。如果要逐步创建这样的映射(通过指定每个键值条目),则需要确保qualifications是一个列表。您可以通过分配预定义条目列表或分配空列表,然后使用<<运算符向其中添加元素来完成此操作。考虑以下示例:

def expected = [name:'Test1',job:'QA',qualifications:['Selenium','Java']]

def emp = [:]
emp.name = "Test1"
emp.job = "QA"
emp.qualifications = []
emp.qualifications << "Selenium"
emp.qualifications << "Java"

assert emp == expected

在此示例中,我们创建一个空列表,然后向其中添加值。另外,我们可以分配一个已经包含两个值的列表。

def expected = [name:'Test1',job:'QA',qualifications:['Selenium','Java']]

def emp = [:]
emp.name = "Test1"
emp.job = "QA"
emp.qualifications = ["Selenium", "Java"]

assert emp == expected

您的评论示例有所不同。它没有将元素添加到列表中,而是使用类型为emp.qualification的值覆盖String条目。这就是为什么它只存储最后一次分配的值的原因。