import java.util.HashMap;
import java.util.Map;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;

class Ideone {
    public static void main(String[] args) {
        Map<Predicate<String>, String> gbu = new HashMap<>();
        gbu.put(x -> x.contains("a"), "good");
        gbu.put(x -> x.contains("b"), "bad");
        gbu.put(x -> x.contains("c"), "ugly");

        Stream.of("bad", "abc", "a")
                .map(str ->
                        str + ":\t" + gbu.entrySet().stream()
                        .filter(entry -> entry.getKey().test(str))
                                .map(Map.Entry::getValue)
                                .collect(Collectors.joining(", "))
                )
                .forEach(System.out::println);
    }
}