obtener el tamaño máximo establecido a partir de un HashMap

Zak Zak:

Tengo un Hashmap de <Integer, Set<Integer>>.

Estoy dispuesto a conseguir el conjunto que tiene el tamaño máximo utilizando el funcionamiento corriente de java.

Aquí está mi ejemplo:

public class Example {

     public static void main( String[] args ) {
         Map<Integer,Set<Integer>> adj = new HashMap<>();
         Set<Integer> set1 = Stream.of(1,2,3).collect(Collectors.toSet());
         Set<Integer> set2 = Stream.of(1,2).collect(Collectors.toSet());
         adj.put(1,set1);
         adj.put(2,set2);
     }
}

He intentado esto:

 Collections.max(adj,Comparator.comparingInt(Set::size));

Pero estoy un error de compilación porque el método size () en la interfaz Set no es estática.

Normalmente deberíamos obtener 3 como el conjunto de tamaño máximo.

Ousmane D .:

No se puede utilizar una Map<Integer,Set<Integer>>con Collection.max. como se le define como teniendo una colección.

public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)

Así que, para que funcione, ya sea hacer:

Collections.max(adj.values(), Comparator.comparingInt(Set::size));

o una corriente de:

adj.values()
   .stream()
   .max(Comparator.comparingInt(Set::size));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=200472&siteId=1
Recomendado
Clasificación