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