需要一些基於兩個鍵合併2個LinkedHashMaps的ArrayLists的幫助。如何使用groovy合併2個LinkedHashMaps的ArrayLists
這裏的數據是什麼樣子:
def searchResults = [
[dId:"prod_000001", groupName:"Group 1", subjectName:"Subject 1", dTitle:"Title 1"],
[dId:"prod_000002", groupName:"Group 1", subjectName:"Subject 1", dTitle:"Title 2"],
[dId:"prod_000003", groupName:"Group 1", subjectName:"Subject 2", dTitle:"Title 3"],
[dId:"prod_000004", groupName:"Group 2", subjectName:"Subject 1", dTitle:"Title 4"]
]
def groupInfo = [
[groupName:"Group 1", groupId:"01", subjectName:"Subject 1", subjectSortOrder:"01"],
[groupName:"Group 1", groupId:"01", subjectName:"Subject 2", subjectSortOrder:"02"],
[groupName:"Group 1", groupId:"01", subjectName:"Subject 3", subjectSortOrder:"03"],
[groupName:"Group 2", groupId:"02", subjectName:"Subject 1", subjectSortOrder:"01"]
]
我需要基於組名和主旨名稱,像SearchResult所合併來自GROUPINFO屬性:
def mergedResults = mergeResults(searchResults,groupInfo,["groupName","subjectName"])
這將導致:
mergedResult = [
[dId:"prod_000001", groupName:"Group 1", subjectName: "Subject 1", dTitle: "Title 1", groupID:"01", subjectSortOrder:"01"],
[dId:"prod_000002", groupName:"Group 1", subjectName: "Subject 1", dTitle: "Title 2", groupID:"01", subjectSortOrder:"01"],
[dId:"prod_000003", groupName:"Group 1", subjectName: "Subject 2", dTitle: "Title 3", groupID:"01", subjectSortOrder:"02"],
[dId:"prod_000004", groupName:"Group 2", subjectName: "Subject 1", dTitle: "Title 4", groupID:"02", subjectSortOrder:"01"]
]