Сортировка карт внутри карт по значению

] Я пытаюсь отсортировать карту в Groovy, которая имеет карты в качестве значения. Я хочу перебрать карту и распечатать значения, отсортированные по значениям lastName и firstName. Итак, в следующем примере:

def m = 
[1:[firstName:'John', lastName:'Smith', email:'john@john.com'], 
2:[firstName:'Amy',  lastName:'Madigan', email:'amy@amy.com'], 
3:[firstName:'Lucy', lastName:'B',      email:'lucy@lucy.com'], 
4:[firstName:'Ella', lastName:'B',      email:'ella@ella.com'], 
5:[firstName:'Pete', lastName:'Dog',    email:'pete@dog.com']]

желаемые результаты будут такими:

[firstName:'Ella', lastName:'B',      email:'ella@ella.com']
[firstName:'Lucy', lastName:'B',      email:'lucy@lucy.com']
[firstName:'Pete', lastName:'Dog',    email:'pete@dog.com']
[firstName:'Amy',  lastName:'Madigan', email:'amy@amy.com']
[firstName:'John', lastName:'Smith', email:'john@john.com']

Я пробовал m.sort{it.value.lastName&&it.value.firstName} и m.sort{[it.value.lastName, it. значение.имя]}. Сортировка по m.sort{it.value.lastName} работает, но не по firstName.

Может ли кто-нибудь помочь с этим, очень признателен, спасибо!

5
задан John Hanley 12 April 2012 в 21:00
поделиться