program FilterMapExample;
uses
FGL;
type
TMyMap = specialize TFPGMap<Integer, String>;
var
MyMap, FilteredMap: TMyMap;
i: Integer;
begin
// Initialize the map
MyMap := TMyMap.Create;
FilteredMap := TMyMap.Create;
// Add key-value pairs
MyMap.Add(1, 'A');
MyMap.Add(2, 'B');
MyMap.Add(3, 'C');
MyMap.Add(4, 'D');
MyMap.Add(5, 'E');
// Filter the map: Keep only entries with even keys
for i := 0 to MyMap.Count - 1 do
begin
if MyMap.Keys[i] mod 2 = 0 then
FilteredMap.Add(MyMap.Keys[i], MyMap.Data[i]);
end;
for i := 0 to FilteredMap.Count - 1 do
WriteLn('Key: ', FilteredMap.Keys[i], ', Value: ', FilteredMap.Data[i]);
// Free memory
MyMap.Free;
FilteredMap.Free;
end.
(*
run:
Key: 2, Value: B
Key: 4, Value: D
*)