code: void updateWith(EfficientAdapter<T> efficientAdapter, List<T> list) {
          new AdapterUpdater<>(efficientAdapter).update(list);
      }
docs: Update the adapter list with this new list.
  Using this method, instead of clear/addAll will allow the implementation to compute the best way to update the
  elements.
  For example, if you have only one item which was in the previous list and which is not on the new, the
  Updater has an opportunity to just call `remove` on this item.
  @param efficientAdapter the adapter to update.
  @param list the new list of item to be into this adapter.