2011-12-02 17 views
1
Map的艾策斯零部件

我做了一個地圖:如何通過反覆測試,並在Groovy

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

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

} 

我怎樣才能抓住一個條目的第二部分(VALUE)在此地圖,並與其他的比較使用(價值)從另一個地圖的另一個條目?

+0

順便說一句,這確實與您的代碼以較少的打字;-)'DEF TOPTEN =(1..10).collect {[ '空':它]}' –

回答

0

作爲替代雷人的答案,如果你想比較第一和第四值,你可以這樣做:

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

我看,謝謝。 'topTen [0,3]。'null''中的'。'''做了什麼?我排序得到它,但我仍然沒有堅實的功能符號的東西,使用'__.__'... – blaughli

+0

@blaughli你已經添加了字符串'null'作爲你的地圖的關鍵。所以它只是在第一個和第四個條目 –

+0

中獲得這個鍵的值。好吧,我認爲我已經知道了。至少我得到它:)感謝一如既往)) – blaughli

0
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' 
+0

由於雷!我當然可以使用這個 – blaughli

+0

查看編輯的一些其他例子的語法來獲取東西 –