docs: @Override
      public Set<QueryableEntry<K, V>> filter(QueryContext queryContext) {
          if (!(predicate instanceof IndexAwarePredicate)) {
              return null;
          }
  
          Set<QueryableEntry<K, V>> set = ((IndexAwarePredicate<K, V>) predicate).filter(queryContext);
          if (set == null || set.isEmpty()) {
              return set;
          }
          List<QueryableEntry<K, V>> resultList = new ArrayList<QueryableEntry<K, V>>();
          Map.Entry<Integer, Map.Entry> nearestAnchorEntry = getNearestAnchorEntry();
          for (QueryableEntry<K, V> queryableEntry : set) {
              if (SortingUtil.compareAnchor(this, queryableEntry, nearestAnchorEntry)) {
                  resultList.add(queryableEntry);
              }
          }
  
          List<QueryableEntry<K, V>> sortedSubList =
                  (List) SortingUtil.getSortedSubList((List) resultList, this, nearestAnchorEntry);
          return new LinkedHashSet<QueryableEntry<K, V>>(sortedSubList);
      }