error de tipos incompatibles cuando se puso ArrayList como valor a un mapa

Babu Dinesh:

Me estoy haciendo la lista si ya existe y la adición de un elemento a la misma.

Fragmento de código:

Map<Integer, List<Integer>> map = new TreeMap<>(Collections.reverseOrder());
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
    int factor = 0;
    int num = sc.nextInt();
    for (int j = 1; j <= num; j++)
      if (num % j == 0) factor++;  //just getting factor count of each input

    map.put(factor, map.getOrDefault(factor, new ArrayList<>()).add(num)); // error line

Error de detalles:

de error: tipos incompatibles: booleano no pueden ser convertidos a la lista

¿Cómo resolver este problema?

Nzr_art:

Debido a add () tiene booleancomo tipo de retorno. No se puede poner valor booleano para mapear los cuales tienen List<Integer>como valor.

Es necesario crear ArrayList -> añadir un elemento al primero.

Y sólo entonces se puso a un mapa como un valor:

List<Integer> list = new ArrayList<>();
list.add(num);
map.put(factor, map.getOrDefault(factor, list));

A partir de Java 9+, se puede utilizar List.of():

map.put(factor, map.getOrDefault(factor, List.of(num)));

Supongo que te gusta

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