How to delete duplicate elements from associative array and Queue in System Verilog

module test;

int q_int[$];
int duplicate_aa[int];

int age[string];
string duplicate_aa2[int];

initial begin
  q_int = {500,1000,500,200,400,500,600,700,900};
  foreach(q_int[i]) duplicate_aa[q_int[i]]++;
  q_int = {};
  foreach(duplicate_aa[i])
    q_int.push_back(i);
  $display("After Deletion Duplicate array =%p",q_int);
end

initial begin
    age["bob"] = 32;
    age["timmy"] = 4;
    age["tyrian"] = 31;
    age["sara"] = 2; 
    age["beema"] = 4;
    age["jack"]=31;

    foreach(age[name]) duplicate_aa2[age[name]] = name;
    age.delete();
    $display("\nAfter Deletion Duplicate array ===== ");
    foreach(duplicate_aa2[num]) age[num] = duplicate_aa2[num];
    foreach(age[name]) $display("age[%0s]=%0d",age[name],name);
end
endmodule

OUTPUT::

After Deletion Duplicate array ='{200, 400, 500, 600, 700, 900, 1000} 

After Deletion Duplicate array ===== 
age[sara]=2
age[timmy]=4
age[tyrian]=31
age[bob]=32