public Set asStringSet()

in opennlp-tools/src/main/java/opennlp/tools/dictionary/Dictionary.java [256:325]


  public Set<String> asStringSet() {
    return new AbstractSet<>() {

      @Override
      public Iterator<String> iterator() {
        final Iterator<StringList> entries = entrySet.iterator();

        return new Iterator<>() {
          @Override
          public boolean hasNext() {
            return entries.hasNext();
          }
          @Override
          public String next() {
            return entries.next().getToken(0);
          }
          @Override
          public void remove() {
            throw new UnsupportedOperationException();
          }
        };
      }

      @Override
      public int size() {
        return entrySet.size();
      }

      @Override
      public boolean contains(Object obj) {
        boolean result = false;

        if (obj instanceof String str) {

          result = entrySet.contains(new StringList(isCaseSensitive, str));

        }
        return result;
      }

      @Override
      public boolean equals(Object o) {
        if (! (o instanceof Set)) {
          return false;
        }
        Set<String> toCheck = (Set<String>) o;
        if (entrySet.size() != toCheck.size()) {
          return false;
        }
        Iterator<String> toCheckIter = toCheck.iterator();
        for (StringList entry : entrySet) {
          if (isCaseSensitive) {
            if (!entry.equals(new StringList(true, toCheckIter.next()))) {
              return false;
            }
          } else {
            if (!entry.compareToIgnoreCase(new StringList(false, toCheckIter.next()))) {
              return false;
            }
          }
        }
        return true;
      }

      @Override
      public int hashCode() {
        return entrySet.hashCode();
      }
    };
  }