Joining a product-application-customer relationship using Java 8 Streams
Using the appropriate types

Your are repeatedly casting searchResult into a Map, the first suggestion I will make is to cast it once first to make subsequent references easier to read:

// use Map&lt;String, Object&gt; if you want to be less strict on the value type,
// at the expense of having to do Object.toString() later
List&lt;Map&lt;String, String&gt;&gt; searchResultDetails = 
                                (List&lt;Map&lt;String, String&gt;&gt;) searchResults.getResult(); 


Rationale: Avoid code repetition and makes the one-time cast clearer to understand

Grouping the search results into a usable Map

Instead of traversing your searchResultMap for each product, consider generating an intermediary Map that gives you the list of CustomerDetails grouped by the product ID:

Map&lt;String, List&lt;CustomerDetails&gt;&gt; customerDetailsByProduct = 
    searchResultDetails.stream()
        .collect(Collectors.groupingBy(map -&gt; map.get("productID"),
                Collectors.mapping(map -&gt; new CustomerDetails(map.get("customerID"),
                                            map.get("appId")), Collectors.toList())));


Rationale: Consider when you have \$n\$ products and a result for each of them. Your current solution will effectively be iterating through them, and iterate through the \$n\$ results for the one matching product. Therefore, you should start with grouping your results first by the product ID, so that the retrieval later via the Map interface will potentially be more efficient.

Process the product list as the final step

With the above map, it's just a matter of looping through your products and creating an instance of ProductInformationWithAssociatedCustomer with the customer details, if present:

// BTW do you really need such long class names?
List&lt;ProductInformationWithAssociatedCustomer&gt; results =
    products.stream()
            .map(product -&gt; new ProductInformationWithAssociatedCustomer(product,
                                    customerDetailsByProduct.getOrDefault(product.getId(),
                                            Collections.emptyList())))
            .collect(Collectors.toList());