Сравними и сравнителен

Две нов интерфейс и java.lang.Comparable java.util.Comparator са добавени във версия 5. Използване на Java interfeyc данни в заявленията им позволява да организирате (подредени) данни.

В сравними интерфейс обявен само един метод compareTo (OBJ Object), предназначени за поръчване на клас обект. Този метод е полезен за сортиране на списък или масив от обекти.

Метод compareTo (OBJ обект) сравнява наречен обект OBJ. За разлика от метода е равно, която връща истина или лъжа, compareTo връща:

  • 0, ако стойностите са равни;
  • Отрицателна стойност (обикновено 1), ако callee малко OBJ;
  • Положителната стойност (обикновено 1), ако нарича обект е по OBJ.

Ако типът на обекта не е съвместим с сравнението, на compareTo (OBJ Object) може да доведе до ClassCastException изключение. Трябва да се помни, че методът за аргумент compareTo има сходен тип клас обект.

Редовен класове Byte, Кратко, Integer, Long, Двойна, Float, характер, String, които вече изпълняват Сравними интерфейс.

Един пример за прилагането на Сравними интерфейс

Резултатът от програмата:

В първия пример, стойностите са подредени ул областта (по азбучен ред), и след това метод бр compareTo на. Това се вижда ясно в две редици с еднакви ценности и различен ул бр. За да промените реда на сортиране на ул стойност (в обратен ред), е необходимо да се направи малки промени в начина на compareTo.

заявения метод за сравнението с интерфейс за сравнение (Object obj1, обект obj2), което позволява сравнение между два обекта. В метода на изходния връща стойност 0, ако предметите са равни, положителна стойност или отрицателна стойност, ако предметите са идентични.

Методът може да предизвика ClassCastException изключение. ако типове обекти не са съвместими с сравнението. Един прост пример на интерфейса на сравняване:

Резултатът от програмата:

Усложни например, и да продават няколко вида на сортирането. За да направите това, да създадете клас Каталог с името полета, цената и количеството.

Нека създадем два класа (SortedByName, SortedByPrice), прилагане на интерфейса на компаратор за сортиране на обекти по име и за цената:

Пример използва Arrays.sort:

Резултатът от програмата:

За да подредите обектите, две независими сравнителни бяха изпълнени по име и цена (SortedByName и SortedByPrice). Сортирането се извършва с помощта Arrays клас. който има метод на сортиране. Този метод се като втори тип аргумент за сравнение.

Можете също така да използвате метод на сортиране на колекции клас. в който първи вход получава списъка с аргумент на обекти:

Сравними интерфейс се използва за сравнение само обект клас, в които се осъществява интерфейса. Т.е. интерфейс Сравними сравнение логика определя на определен референтен обект тип в изпълнение (в съответствие с правилата от страна на възложителя).

Компаратор е отделно изпълнение и може да се използва многократно и с различни класове. Т.е. интерфейс сравняване позволява да се създават обекти, които ще контролират процеса на сравнение (като сортиране).