Короче, как мне лучше проверить, равны ли две коллекции шаблонов Reg Ex (игнорируя порядок)?
Чуть больше информации о том, что я на самом деле пытаюсь сделать с этим, у меня есть объект, который яПри использовании для фильтрации сообщений журнала этот объект фильтра содержит коллекции для каждой вещи, по которой он может быть использован для фильтрации, одна из этих вещей - шаблоны Reg Ex.Я создал метод equals для моего объекта фильтрации, чтобы я мог видеть, являются ли два фильтра в основном одинаковыми, для других коллекций я могу использовать метод collection .equals, но у меня есть проблема с объектами Pattern.
Я мог бы сохранить список строкового ввода для шаблонов в другом списке и сравнить списки строк с .equals, или я мог бы пропустить все объекты и проверить их один за другим, если .toString совпал с чем-то в другом списке для каждогоВот такой список:
boolean equals = true;
for (Pattern p1: patternList1) {
boolean found = false;
for (Pattern p2: patternList2) {
if(p1.toString().equals(p2.toString())) {
found = true;
break;
}
}
if(!found) {
equals = false;
break;
}
}
if(equals) {
for (Pattern p1: patternList2) {
boolean found = false;
for (Pattern p2: patternList1) {
if(p1.toString().equals(p2.toString())) {
found = true;
break;
}
}
if(!found) {
equals = false;
break;
}
}
}
return equals;
Это выглядит не очень эффективно, но сработает, но не сработает, если два шаблона регулярного выражения совпадают, но написаны по-разному.Как код выше может быть оптимизирован / сделан по-другому?и есть ли какой-нибудь "простой" способ отлова reg ex, который написан по-разному, но соответствует одному и тому же?