Tal vez, pero no como parte de la API estándar de Java. Y: la utilidad usaría un bucle adentro.
por lo que tendrá un bucle, pero usted puede crear su propia "utilidad" de hacerlo todo en un método estático en una clase de utilidad:
public static SortedMap<K,V> putFirstEntries(int max, SortedMap<K,V> source) {
int count = 0;
TreeMap<K,V> target = new TreeMap<K,V>();
for (Map.Entry<K,V> entry:source.entrySet()) {
if (count >= max) break;
target.put(entry.getKey(), entry.getValue());
count++;
}
return target;
}
La complejidad sigue siendo O (n) (Dudo, que uno puede lograr O (1)), sino que lo utilice como una herramienta sin "ver" el bucle:
SortedMap<Integer, String> firstFive = Util.putFirstEntries(5, sourceMap);
No lo he comprobado, pero no me sorprendería si alguna API de Google Java tuviera una sola línea para hacer eso :) – SyntaxT3rr0r