@Override
    public Optional<Type> elementType(Type containerType) {
        return FACTORIES.stream()
            .map(factory -> factory.elementType(containerType))
            .filter(Optional::isPresent)
            .findFirst()
            .map(Optional::get);
    }
Provides Collectors for built in JDK container types.
<p>Supported container types:</p>
<ul>
<li>java.util.Optional&lt;T&gt; (throws an exception if more than one row in result)</li>
<li>java.util.Collection&lt;T&gt;</li>
<li>java.util.List&lt;T&gt;</li>
<li>java.util.ArrayList&lt;T&gt;</li>
<li>java.util.LinkedList&lt;T&gt;</li>
<li>java.util.concurrent.CopyOnWriteArrayList&lt;T&gt;</li>
<li>java.util.Set&lt;T&gt;</li>
<li>java.util.HashSet&lt;T&gt;</li>
<li>java.util.LinkedHashSet&lt;T&gt;</li>
<li>java.util.SortedSet&lt;T&gt;</li>
<li>java.util.TreeSet&lt;T&gt;</li>
</ul>
<p>Supported Map types - for rows mapped to Map.Entry&lt;K, V&gt;</p>
<ul>
<li>java.util.Map&lt;K, V&gt;</li>
<li>java.util.HashMap&lt;K, V&gt;</li>
<li>java.util.LinkedHashMap&lt;K, V&gt;</li>
<li>java.util.SortedMap&lt;K, V&gt;</li>
<li>java.util.TreeMap&lt;K, V&gt;</li>
<li>java.util.concurrent.ConcurrentMap&lt;K, V&gt;</li>
<li>java.util.concurrent.ConcurrentHashMap&lt;K, V&gt;</li>
<li>java.util.WeakHashMap&lt;K, V&gt;</li>
</ul>

@deprecated will be replaced by plugin
core/src/main/java/org/jdbi/v3/core/collector/BuiltInCollectorFactory.java