Если вы хотите сопоставить несколько наборов строк для каждого случая, вам, вероятно, будет лучше использовать какую-то функцию отображения, которая имеет Set<String>
совпадающих значений, а затем соответствующий результат.
Map<Set<String>, String> mappedOutcomes = new HashMap<>();
Set<String> matches = new HashSet<String>();
matches.add("match1");
mathces.add("match2);
mappedOutcomes.add(mySet, "str1");
String stringVariable = "somequery";
for(Map.Entry<Set, String> entry in mappedOutcomes.entrySet()){
// Bear in mind case-sensitivity here for hashset, you may want to convert all strings to lower/upper case
if(entry.getKey().contains(stringVariable)){
return entry.getValue();
}
}
// Else if you get here, no match was found
Вы могли бы go сделать еще один шаг и написать собственный класс-обертку, содержащий ваш набор совпадений и результат, а затем просто сохранить список того, чем является ваш объект. Это было бы лучше, чем перебирать набор записей Map.