public Iterator iterator() {
        return asSet().iterator();
    }
Returns the first available principal from any of the {@code Realm} principals, or {@code null} if there are
no principals yet.
<p/>
The 'first available principal' is interpreted as the principal that would be returned by
<code>{@link #iterator() iterator()}.{@link java.util.Iterator#next() next()}.</code>

@inheritDoc
core/src/main/java/org/apache/shiro/subject/SimplePrincipalCollection.java