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 回答