docs: public final void setComparator(@Nullable final Comparator<ItemType> comparator) {
          this.comparator = comparator;
  
          if (comparator != null) {
              if (items.size() > 0) {
                  List<ItemType> newItems = new ArrayList<>();
                  List<View> views = new ArrayList<>();
  
                  for (int i = items.size() - 1; i >= 0; i--) {
                      ItemType item = items.get(i);
                      int index = binarySearch(newItems, item, comparator);
                      newItems.add(index, item);
                      View view = parent.getChildAt(i);
                      parent.removeViewAt(i);
                      views.add(index, view);
                  }
  
                  parent.removeAllViews();
  
                  for (View view : views) {
                      parent.addView(view);
                  }
  
                  this.items = newItems;
                  getLogger().logDebug(getClass(), "Comparator changed. Views have been reordered");
              } else {
                  getLogger().logDebug(getClass(), "Comparator changed");
              }
          } else {
              getLogger().logDebug(getClass(), "Comparator set to null");
          }
      }