2

私はこのような地図を持っています-

def a=["Ak":[data1,col,'ak'],"BH":[data2,col,'bh']]

別の地図で

def b=[:]

データはを使用して挿入されます

a.each{key,val->
  def available = val.get(0)
  if (available){
    b[key] = val
  }
}

このマップによると、biはビュー内のテーブルにデータを割り当てる必要があります。

私の問題は、両方のデータサイズを確認しdata1data2ユーザーがビューにドリルダウンするたびに大きなサイズのデータ​​を表示したいということです。

4

1 に答える 1

1

最初に最も多くのデータを含むものが必要であると仮定すると、次のことができます(Groovyが1.7.9より後の場合)。

// dummy data
def data1 = [ 1, 2, 3 ]
def data2 = [ 5, 6, 7, 8 ]
def col = 'something'

// original map
def a=["Ak":[data1,col,'ak'],"BH":[data2,col,'bh']]


def b = a.findAll { k, v -> v[ 0 ] }               // Keep those with data
         .collectEntries { k, v -> [ k, v[ 0 ] ] } // Make a new map of key:data
         .sort { -it.value.size() }                // Sort it by data size descending
于 2012-09-21T08:24:40.147 に答える