Oba definiują sposób porządkowania obiektów, ale na różne sposoby: Comparable definiuje naturalny porządek klasy (zaimplementowany przez samą klasę), podczas gdy Comparator definiuje , alternatywny porządek (osobny obiekt). Wybór zależy od tego, czy porządek jest wewnętrzny czy sytuacyjny.
