la recogida de la columna de matriz multidimensional de conjunto

bell_pepper:

Tengo un atributo this.sudokuque es una int[9][9]matriz. Necesito conseguir una columna de esta en un conjunto.

Set<Integer> sudoku_column = IntStream.range(0, 9)
                                      .map(i -> this.sudoku[i][column])
                                      .collect(Collectors.toSet());

Espero un valores de las columnas en este conjunto. pero dice que Collectors.toSet()no se puede aplicar a esta función a cobro revertido en la cadena. ¿Puede alguien explicar por qué?

Ousmane D .:

IntStream#mapconsume una IntUnaryOperatorque representa una operación en un solo operando int de valor que produce un resultado int-valorada por lo tanto el resultado es una IntStream, sin embargo IntStreamno tiene la collectsobrecarga que eres intento de uso, lo que significa que tiene un par de opciones; es decir, ya sea para uso IntStream#collect:

IntStream.range(0, 9)
         .collect(HashSet::new, (c, i) -> c.add(sudoku[i][column]), HashSet::addAll);

o utilizar mapToObjpara transformar a partir IntStreamde Stream<Integer>la que a continuación, puede llamar .collect(Collectors.toSet())al.

IntStream.range(0, 9)
        .mapToObj(i -> this.sudoku[i][column])
        .collect(Collectors.toSet());

Supongo que te gusta

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