Вы изучили интерфейс Comparable? Вам нужно будет обернуть карту < String, String> внутри нового класса с сопоставимым методом(), чтобы сделать его сортируемым. Более подробная информация здесь: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_comparable.htm
public class MapWrapper implements Comparable {
public Map<String,String> record;
public MapWrapper(Map<String,String> record) {
this.record = record;
}
public Integer compareTo(Object compareTo) {
MapWrapper compareToMap = (MapWrapper)compareTo;
if (record.get('Savings') == compareToMap.record.get('Savings')) return 0;
if (record.get('Savings') > compareToMap.record.get('Savings')) return 1;
return -1;
}
}
Ваш список будет содержать MapWrapper объектов вместо Map < String, String>. Вы можете отсортировать его с помощью list.sort():
List<MapWrapper> myList = new MapWrapper[]{};
myList.add(new MapWrapper(new Map<String,String>{'Name'=>'John','Savings'=>'300'}));
myList.add(new MapWrapper(new Map<String,String>{'Name'=>'David','Savings'=>'100'}));
System.debug(myList); //Unsorted
myList.sort();
System.debug(myList); //Sorted
Если вам необходимо сохранить структуру как List<Map<String,String>>
без обертки, вы можете сделать это, но вам нужно будет реализовать своего рода алгоритму самостоятельно. Самый простой способ сделать это - использовать сортировку пузырьков.