Filtrar de varias listas

 public List<Vehiculo> completeVehiculoFiltrado(String query) {
        List<Vehiculo> suggestions = new ArrayList<>();
        List<Vehiculo> temp = new ArrayList<>();
        try {
            Boolean found = false;
            query = query.trim();

            String field = (String) UIComponent.getCurrentComponent(FacesContext.getCurrentInstance()).getAttributes().get("field");
            temp = vehiculoRepository.findRegex(field, query, true, new Document(field, 1));

            if (temp.isEmpty()) {
                return suggestions;
            } else {
                List<Vehiculo> validos = temp.stream() // Convert to steam
                        .filter(x -> isVehiculoValid(x)).collect(Collectors.toList());        // we want "jack" only
                if (validos.isEmpty()) {
                    return suggestions;
                }
                if (vehiculoList.isEmpty()) {
                    return validos;
                } else {
                    validos.stream().map((v) -> vehiculoList.stream()
                            .filter(x -> v.getIdvehiculo().equals(x.getIdvehiculo()))
                            .findAny()
                            .orElse(null)).filter((v2) -> (v2 != null)).forEachOrdered((v2) -> {
                                suggestions.add(v2);
                    });

                }
            }



        } catch (Exception e) {
            JsfUtil.errorMessage("completeVehiculoFiltrado() " + e.getLocalizedMessage());
        }
        return suggestions;
    }

Last updated