У нас есть веб-страница, где пользователь может выбрать произвольное количество правил для фильтрации и сортировки группы товаров. Для каждого правила он устанавливает для него приоритет, с помощью которого пользователь определяет порядок применения правил.
Из этой группы правил я извлекаю объекты Comparator (если правило сортировало) и / или предикаты (если пользователь хочет фильтровать элементы). Я хотел бы использовать их с потоком элементов для их фильтрации и сортировки.
Мой вопрос: имеет ли значение порядок применения объектов Comparator и Predicate? Я знаю, что порядок объектов Comparator важен, но имеет ли значение, если предикат появляется в начале или в конце?
Например:
We have Comparator objects: comparator1, comparator2
We have Predicate objects: predicate1, predicate2
Is there a difference between applying them in the following orders:
- comparator1, comparator2, predicate1, predicate2
- predicate1, predicate2, comparator1, comparator2
- predicate1, comparator1, predicate2, comparator2
- predicate2, comparator1, comparator2, predicate1
Note: comparator1 always appears before comparator2. I am aware that changing their order could result in different results in terms of sorting.
Теперь я думаю, что все вышеперечисленные ситуации приведут к одному и тому же результату (с точки зрения сортировки и элементов). Это позволило бы мне сначала применить все фильтры, а затем позаботиться о сортировке. Но я не уверен, поэтому мне пришлось спросить здесь.