type
TMap = specialize TFPGMap<TKey, TData>;
function ContentEquals(m,n : TMap): Boolean;
var
key: TKey;
data, data2: TData;
idx: integer;
begin
Result := False;
if m.count <> n.count then
Exit;
for idx := 0 to m.count-1 do
begin
key := m.keys[idx];
Result := n.TryGetData(key, data2);
if Result then
begin
data := m.data[idx];
Result := data2 = data;
end;
if not Result then
Exit;
end;
end;
begin
...
b := ContentEquals(m,n);
TKey and TData can be of any kind (except a class).