code: public static final Locale[] getLocaleList(ULocale[] ulocales) {
          ArrayList<Locale> list = new ArrayList<Locale>(ulocales.length);
          HashSet<Locale> uniqueSet = new HashSet<Locale>();
          for (int i = 0; i < ulocales.length; i++) {
              Locale loc = ulocales[i].toLocale();
              if (!uniqueSet.contains(loc)) {
                  list.add(loc);
                  uniqueSet.add(loc);
              }
          }
          return list.toArray(new Locale[list.size()]);
      }
docs: Convert a list of ULocales to a list of Locales.  ULocales with a script code will not be converted
  since they cannot be represented as a Locale.  This means that the two lists will <b>not</b> match
  one-to-one, and that the returned list might be shorter than the input list.
  @param ulocales a list of ULocales to convert to a list of Locales.
  @return the list of converted ULocales