Show how to iterate over the key-value pairs of an associative array, and print each pair out.

Also show how to iterate just over the keys, or the values, if there is a separate way to do that in your language.



See also

 Array
 Associative array: Creation, Iteration
 Collections
 Compound data type
 Doubly-linked list: Definition, Element definition, Element insertion, List Traversal, Element Removal
 Linked list
 Queue: Definition, Usage
 Set
 Singly-linked list: Element definition, Element insertion, List Traversal, Element Removal
 Stack


 
class Iteration {
  function : Main(args : String[]) ~ Nil {
    assoc_array := Collection.StringMap->New();
    assoc_array->Insert("Hello", IntHolder->New(1));
    assoc_array->Insert("World", IntHolder->New(2));
    assoc_array->Insert("!", IntHolder->New(3));
 
    keys := assoc_array->GetKeys();
    values := assoc_array->GetValues();
 
    each(i : keys) {
      key := keys->Get(i)->As(String);
      value := assoc_array->Find(key)->As(IntHolder)->Get();
      "key={$key}, value={$value}"->PrintLine();
    };
 
    "-------------"->PrintLine();
 
    each(i : keys) {
      key := keys->Get(i)->As(String);
      value := values->Get(i)->As(IntHolder)->Get();
      "key={$key}, value={$value}"->PrintLine();
    };
  }
}
 