任何人都可以點示我如何在Groovy中使用Map
的示例,其中String
作爲其鍵和List
作爲值?作爲字符串的值和作爲Groovy中的值的映射的映射
20
A
回答
27
Groovy中接受幾乎所有的Java語法,所以有一個選擇範圍,如下圖所示:
// Java syntax
Map<String,List> map1 = new HashMap<String,List>();
List list1 = new ArrayList();
list1.add("hello");
map1.put("abc", list1);
assert map1.get("abc") == list1;
// slightly less Java-esque
def map2 = new HashMap<String,List>()
def list2 = new ArrayList()
list2.add("hello")
map2.put("abc", list1)
assert map2.get("abc") == list2
// typical Groovy
def map3 = [:]
def list3 = []
list3 << "hello"
map3.'abc'= list1
assert map3.'abc' == list3
13
def map = [:]
map["stringKey"] = [1, 2, 3, 4]
map["anotherKey"] = [55, 66, 77]
assert map["anotherKey"] == [55, 66, 77]
5
一個額外的小片與地圖打交道時是有幫助的/列表中值地圖是groovy中地圖上的withDefault(Closure)
方法。而不是做下面的代碼:
Map m = [:]
for(object in listOfObjects)
{
if(m.containsKey(object.myKey))
{
m.get(object.myKey).add(object.myValue)
}
else
{
m.put(object.myKey, [object.myValue]
}
}
你可以做到以下幾點:
Map m = [:].withDefault{key -> return []}
for(object in listOfObjects)
{
List valueList = m.get(object.myKey)
m.put(object.myKey, valueList)
}
在默認可用於其他的東西爲好,但我覺得這是最常見的情況我。
API: http://www.groovy-lang.org/gdk.html
地圖 - > withDefault(關閉)
1
你不需要申報地圖常規內部識別它
def personDetails = [firstName:'John', lastName:'Doe', fullName:'John Doe']
// print the values..
println "First Name: ${personDetails.firstName}"
println "Last Name: ${personDetails.lastName}"
相關問題
- 1. 在java中使用映射作爲值的映射是「好」嗎?
- 2. Python - 將鍵映射到作爲映射的值
- 3. 是否可以使用運算符作爲映射中的映射值?
- 4. 如何映射映射的鍵和值?
- 5. 字符串的映射,設置。值
- 6. 映射查詢字符串值作爲路線
- 7. 比較字符串和映射值
- 8. Grails的映射字符串爲nvarchar
- 9. 映射空字符串爲NULL NHibernate的
- 10. 如何將映射值轉換爲Java中的字符串
- 11. 與字符串鍵和字符串或切片值的映射?
- 12. 在代碼中映射Enum作爲字符串NHibernate 3.2映射代碼
- 13. 使用Z3 :: expr作爲映射值
- 14. C++ 11 share_ptr作爲值映射關鍵
- 15. 插入對作爲映射值
- 16. ObjectMapper:字典鍵作爲映射對象中的值
- 17. 使用每個映射中的鍵的值將映射序列轉換爲映射映射
- 18. 將鍵值映射到整數和字符串的值
- 19. 如何將類類型用作映射鍵和類的值列表作爲映射值?
- 20. BizTalk映射值映射環接的functoid
- 21. R用矢量映射的值映射
- 22. 將鍵映射爲字符串的序列化和反序列化映射
- 23. Groovy收集(?)變量和值來映射
- 24. 映射字符串
- 25. Scala的映射值
- 26. 映射列的值
- 27. 按csv排序映射字符串值
- 28. 映射Java泛型字符串值
- 29. 添加字符串值映射在C++
- 30. 如何將sql中的值映射到字符串值
另外: ' map.stringKey = [1,2,3,4]; map.anotherKey = [55,66,77]' – Will