Вы должны перебрать свою коллекцию строк как-то (исключая любые неэффективные хаки объединения всех строк до и затем тестирования полной строки - но за кулисами это тоже перебор коллекции!)
Но один правильный подход, вероятно, будет использовать потоки:
// pre-compiling the pattern avoids having the runtime parse the
// regex for every single item in your collection, which can become slow
private static final Pattern VALID_PATTERN
= Pattern.compile("^[a-zA-Z0-9]+$"); // ^ and $ anchors to prevent from having other characters
private static boolean validate(final String s) {
return VALID_PATTERN.matcher(s).matches();
}
// later, in your logic:
void yourBusinessLogic() {
final List<String> strings = List.of("abc", "123", "some_thing");
final boolean allValid = strings.stream()
.allMatch(YourClass::validate);
}