Как перебрать и получить доступ к частям карты в Groovy - PullRequest
1 голос
/ 02 декабря 2011

Я сделал карту:

def topTen = (1..10).collect { [:].withDefault{[]} }
for (i = 0; i<10; i++) {

topTen[i].put("null", i+1)

}

Как я могу получить вторую часть (Значение) записи в этой карте и использовать в сравнении с другой (Значение) из другой записи в другой карте?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2011

В качестве альтернативы ответу Рэя, если вы хотите сравнить первое и четвертое значения, вы можете сделать:

def (a, b) = topTen[ 0, 3 ].'null'
assert a == b

Что (очевидно) является ложным, поэтому выдаст ошибку подтверждения:

Dec 2, 2011 9:07:22 AM org.codehaus.groovy.runtime.StackTraceUtils sanitize
WARNING: Sanitizing stacktrace:
Assertion failed: 

assert a == b
       | |  |
       1 |  4
         false
0 голосов
/ 02 декабря 2011
def topTen = (1..10).collect {
    [:].withDefault{[] } }
for (i = 0; i<10; i++) {
    topTen[i].put("null", i+1)
}
def other=[[null:1],[null:2]]
if(topTen[0]['null']==other[0]['null'])
    println 'equal'

if(topTen[0].get('null')==other[0]['null'])
    println 'equal'
if(topTen[0].'null'==other[0]['null'])
    println 'equal'
...