code: public static synchronized String getEquivalentID(String id, int index) {
          String result = "";
          if (index >= 0) {
              UResourceBundle res = openOlsonResource(null, id);
              if (res != null) {
                  int zoneIdx = -1;
                  try {
                      UResourceBundle links = res.get("links");
                      int[] zones = links.getIntVector();
                      if (index < zones.length) {
                          zoneIdx = zones[index];
                      }
                  } catch (MissingResourceException ex) {
                      // throw away
                  }
                  if (zoneIdx >= 0) {
                      String tmp = getZoneID(zoneIdx);
                      if (tmp != null) {
                          result = tmp;
                      }
                  }
              }
          }
          return result;
      }
docs: Returns an ID in the equivalency group that includes the given
  ID.  An equivalency group contains zones that behave
  identically to the given zone.
  
  <p>The given index must be in the range 0..n-1, where n is the
  value returned by <code>countEquivalentIDs(id)</code>.  For
  some value of 'index', the returned value will be equal to the
  given id.  If the given id is not a valid system time zone, or
  if 'index' is out of range, then returns an empty string.
  @param id a system time zone ID
  @param index a value from 0 to n-1, where n is the value
  returned by <code>countEquivalentIDs(id)</code>
  @return the ID of the index-th zone in the equivalency group
  containing 'id', or an empty string if 'id' is not a valid
  system ID or 'index' is out of range
  @see #countEquivalentIDs