Если под «лучше» вы подразумеваете более четкое, то, возможно, вы могли бы рассмотреть возможность использования потоков:
abc.stream().flatMap(ABC::matIDs).anyMatch(ids::contains);
Считаете ли вы это «лучше», зависит от того, что вы хотите.
Если вырегулярно проверяем, есть ли конкретный идентификатор в списке, вы можете собрать идентификаторы в наборе:
Set<String> abcIDs = abc.stream().flatMap(ABC::matIDs).collect(toSet());
Затем проверка, находится ли конкретная строка в наборе, тривиальна, не возвращаясь к оригиналусписок.