Groovy入門(四)——集合Map
阿新 • • 發佈:2019-01-06
Map
map宣告方式
def myMap =['a':1,'b':2,'c':3]
assert myMap instance HashMap
assert myMap.size() == 3
assert myMap['a'] == 1
def emptyMap = [:]
assert emptyMap.size() ==0
def map = new TreeMap()
map.putAll(myMap)
assert map['a'] == 1
map操作符
def map = ['a':1,'b':2,'c':3]
assert map['a'] == 1
assert map.a ==1
assert map.get('a') ==1
assert map.get('a',0) == 1
assert map['d'] ==null
assert map.d ==null
assert map.get('d') == null
map['d'] =1
assert map.d ==1
map.e =2
assert map.e ==2
map常用方法
def map =['a':1,'b':2,'c':3]
assert map.isEmpty() == false
assert map.size() == 3
assert map.containskey('a' )
assert map.containsValue(1)
assert map.any{entry->entry.value>2}
assert map.every{entry->entry.key<'d'}
map實戰——單詞統計
def text ="""
Look for the bare necessities
The simple bare necessities
Forget about your worries and your strife
I mean the bare necessities
Old Mother Nuture's recipes
That bring the bare necessities of life
"""
def words = text.tokenize()
def wordFrequency =[:]
words.each{word->
wordFrequency[word] = wordFrequency.get(word,0)+1
}
def wordList =wordFrequency.keySet().toList()
wordList.sort {wordFrequency[it]}
def statistic = '\n'
wordList.reverse().each {word->
statistic+=word.padLeft(12)+": "
statistic+=wordFrequency[word]+"\n"
}
println(statistic)