Предположим, у меня есть список (или набор):
List<String> testList = Lists.newArrayList("assocX","srcT","destA","srcX", "don't care Y", "garbage", "srcB");
Я хотел бы получить обратно ImmutableList (Set), который сортирует / группирует термины в естественном порядке, где термины, начинающиеся с «src», являются первыми, «assoc» - вторыми, а «dest» - последними. Если термин не содержит таковых, его следует удалить из результирующего списка.
Следовательно, результатом здесь являются "srcB", "srcT", "assocX", "destA".
Я думаю, что могу сделать это с некоторой комбинацией Iterables.filter или Predicates, но просто не увидев это. Я думаю, что должен быть краткий способ сделать это.
РЕДАКТИРОВАТЬ: набор вместо списка работает также.