List <String> obtener el recuento de todos los elementos que termina con una de las cadenas de otra lista

Delica:

Digamos que tengo una lista con elementos como:

List<String> endings= Arrays.asList("AAA", "BBB", "CCC", "DDD");

Y tengo otra gran lista de cadenas de las que me gustaría seleccionar todos los elementos que terminan con cualquiera de las cadenas de la lista anterior.

List<String> fullList= Arrays.asList("111.AAA", "222.AAA", "111.BBB", "222.BBB", "111.CCC", "222.CCC", "111.DDD", "222.DDD");

Idealmente me gustaría una forma de partición de la segunda lista para que contenga cuatro grupos, cada grupo contiene sólo aquellos elementos que terminan con una de las cuerdas de la primera lista. Así que en el caso anterior los resultados serían 4 grupos de 2 elementos cada uno.

Me encontré con este ejemplo, pero todavía me falta la parte donde pueda filtrar por todos los finales que figuran en una lista diferente.

Map<Boolean, List<String>> grouped = fullList.stream().collect(Collectors.partitioningBy((String e) -> !e.endsWith("AAA")));

ACTUALIZACIÓN: La respuesta de MC emperador funciona, pero se estrella en las listas que contienen millones de cadenas, por lo que no funciona bien en la práctica.

Eritrea:

Si su fullListtienen algunos elementos que tienen sufijos que no están presentes en su endingsusted podría intentar algo como:

    List<String> endings= Arrays.asList("AAA", "BBB", "CCC", "DDD");
    List<String> fullList= Arrays.asList("111.AAA", "222.AAA", "111.BBB", "222.BBB", "111.CCC", "222.CCC", "111.DDD", "222.DDD", "111.EEE");
    Function<String,String> suffix = s -> endings.stream()
                                                 .filter(e -> s.endsWith(e))
                                                 .findFirst().orElse("UnknownSuffix");
    Map<String,List<String>> grouped = fullList.stream()
                                               .collect(Collectors.groupingBy(suffix));
    System.out.println(grouped);

Supongo que te gusta

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