这个例子将展示如何使用groovy将一个列表转换为Map。在示例中,我们将创建一个自行车类,同时初始化一个自行车的列表,这将在第一个片段中使用。
@ToString
class Bike {
def name
def brand
public Bike(String name, String brand) {
this.name = name
this.brand = brand
}
}
def bikes
@Before
void before() {
bikes = [
new Bike("SuperFly", "Trek"),
new Bike("X-Caliber", "Trek"),
new Bike("Big Daddy", "Huffy"),
new Bike("CranBrook", "Huffy"),
]
}
使用collectEntries
,我们将遍历自行车集合,并将列表中的每个自行车对象转换为Map,使用自行车名称作为键,品牌作为值。
@Test
void convert_list_of_objects_to_map() {
def bikeMap = bikes.collectEntries {
b -> [b.name, b.brand]
}
assert 4 == bikeMap.size()
assert 'Trek' == bikeMap['SuperFly']
}
输出
[SuperFly:Trek, X-Caliber:Trek, Big Daddy:Huffy, CranBrook:Huffy]
使用SpreadMap,我们将把一个字符串列表转换为Map。SpreadMap是一个辅助工具,它可以将一个具有偶数元素的列表变成一个Map。在下面的片段中,我们创建了一个以NFL城市为关键字的地图,而其值将是球队名称。
@Test
void convert_list_of_strings_to_map() {
def list = [
'green bay',
'packers',
'cincinnati',
'bengals'] as Object[]
def map = list.toSpreadMap()
assert 2 == map.size()
assert 'packers' == map['green bay']
}
输出
[green bay:packers, cincinnati:bengals]
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : http://www.leveluplunch.com/groovy/examples/convert-list-to-map/
内容来源于网络,如有侵权,请联系作者删除!