¿Cómo encontrar valor único de una columna de un ArrayList en Java 2D?

a B C :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Delete
{
    public static void main(String[] args)
    {
         List<List<String>> list = new ArrayList<>();
         list.add(List.of("A","B","C","R"));
         list.add(List.of("E","F","G","F"));
         list.add(List.of("A","B","C","D"));
         System.out.println(list.stream().distinct().count());
         Map<String, Long> countMapOfColumn = list.stream()
                                                  .filter(innerList -> innerList.size() >= 3)
                                                  .map(innerList -> innerList.get(3 - 1))
                         .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
        System.out.println(countMapOfColumn.keySet());
    }
}

Quiero averiguar el único elemento de la columna 3, que son "C","G"y hay 2elemento único en la columna 3.

Esto se puede hacer usando looppero no puedo utilizar bucle. Utilización de Java streamno puede ser una solución.

Además, ¿cómo puedo obtener el recuento de filas que tienen "A","B"en la columna 1,2a la vez y en general para Nlas columnas?

buræquete:

Para su estructura de datos dada;

Map<String, Long> countMapOfColumn = list.stream()
        .filter(innerList -> innerList.size() >= column)
        .map(innerList -> innerList.get(column - 1))
        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

donde column = 3, te llevará a un mapa con {"C", "G"}como conjunto de claves y valores le dará el recuento de cada carácter en la columna dada. También se trabajará para matrices no uniformes, ya que simplemente se saltará las filas que no tiene una columna de orden n.

recuento único de cualquier columna será la resultante del tamaño de mapa de método de cobro; countMapOfColumn.size()

Para obtener el recuento de char individuales, utilice el mapa resultante con teclas como entrada, por ejemplo, para conseguir contar de Cen column = 3, uso countMapOfColumn.get("C"), que devolverá2

Pero prefiero usar de una guayaba Table, puede seleccionar directamente cualquier fila o columna dada y sin ningún tipo de molestia, entonces sólo es, conseguir la columna n, y el filtro de nuestros duplicados.

actualizar

Para obtener el número de filas que se inician con la lista consecutiva list = {"A", "B"};

List<String> startingList = Arrays.asList("A", "B");
Long count = list.stream()
        .filter(innerList -> innerList.size() >= startingList.size() 
                && innerList.subList(0, startingList.size()).equals(startingList))
        .count();

Supongo que te gusta

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