Groovy > マップ(連想配列)の使い方
更新日
2012-08-15
広告
Groovyでは、JavaScriptのリテラル表記っぽく、マップを定義できます。
def map = ['name':'taro', 'age':15] println map.size() println map.get('name') println map['age'] println map.containsKey('name') // true println map.containsValue(15) // trueこれの実行結果は以下のようになります。
2 taro 15 true true
put/remove
putを使うとkey-valueペアを追加できます。removeを使うとkey-valueペアを削除できます。def map = ['name':'taro', 'age':15] map.put('weight', 60) // 追加 println map map.remove('name') // 削除 println mapこれの実行結果は以下のようになります。
[name:taro, age:15, weight:60] [age:15, weight:60]
each
eachを使うと、各 key-value ペアに対して、クロージャを適用できます。クロージャの適用の方法はリストの場合と似ています。def map = ['name':'taro', 'age':15] map.each { key, value -> println "key = ${key}, value = ${value}" }キーをkeyに、バリューを変数valueに代入して、クロージャを適用します。実行結果は以下のようになります。
key = name, value = taro key = age, value = 15
sort
ソートする方法を紹介します。def map = [5:'e', 2:'b', 3:'c'] println map.sort() // キーで昇順ソート println map.sort{ kv1, kv2 -> return kv2.key - kv1.key } // キーで降順ソート2行目のように、単に sort メソッドを呼んだ場合、キーで昇順ソートされます。 3行目のようにクロージャを呼ぶ場合は、2つの引数がクロージャに渡されます。それぞれの引数は、マップのkey-valueペアです。 実行結果は以下のとおりです。
[2:b, 3:c, 5:e] [5:e, 3:c, 2:b]
広告
お問い合わせは sweng.tips@gmail.com まで。