Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Классы-коллекции, программирование в Java

В рамках одного класса могут присутствовать несколько методов с одним и тем же названием, отличающихся друг от друга только количеством и/или типом параметров. Нельзя определить два метода с одинаковыми названиями, отличающиеся только типом возвращаемого значения. Метод, название которого совпадает с именем класса, называется конструктором и вызывается при создании объекта командой new. Конструкторов с разными списками параметров может быть несколько.

Сравнение элементов коллекций

Интерфейс Comparator описывает два метода сравнения:

int compare (Object obji, object obj2 ) — возвращает отрицательное число, если objl в каком-то смысле меньше obj2 ; нуль, если они считаются равными; положительное число, если objl больше obj2 . Для читателей, знакомых с теорией множеств, скажем, что этот метод сравнения обладает свойствами тождества, антисимметричности и транзитивности;

boolean equals (Object obj) — сравнивает данный объект с объектом obj , возвращая true , если объекты совпадают в каком-либо смысле, заданном этим методом. Пpавила изобpажения пpедметов (изделий, сооpужений и их составных элементов) на чеpтежах всех отpаслей пpомышленности и стpоительства устанавливает ГОСТ 2.305 - 68. Изобpажения пpедметов должны выполняться по методу пpямоугольного (оpтогонального) пpоециpования на плоскость. Пpи этом пpедмет pасполагают между наблюдателем и соответствующей плоскостью пpоекций. Следует обpатить внимание на pазличие, существующее между изобpажением и пpоекцией пpедмета. Hе всякое изобpажение является пpоекцией пpедмета. Между пpедметом и его пpоекцией существует взаимно однозначное точечное соответствие, котоpое состоит в том, что каждой точке пpедмета соответствует опpеделенная точка на пpоекции и наобоpот.

Для каждой коллекции можно реализовать эти два метода, задав конкретный способ сравнения элементов, и определить объект класса SortedMap вторым конструктором. Элементы коллекции будут автоматически отсортированы в заданном порядке.

Листинг 6.6 показывает один из возможных способов упорядочения комплексных чисел — объектов класса complex из листинга 2.4. Здесь описывается класс ComplexCompare , реализующий интерфейс Comparator , В листинге 6.7 он применяется для упорядоченного хранения множества комплексных чисел.

 Листинг 6.6. Сравнение комплексных чисел 

import java.util.*;

class ComplexCompare implements Comparator{ 

public int compare(Object objl, Object obj2){ 

Complex zl = (Complex)objl, z2 = (Complex)obj2; 

double rel = zl.getReO, iml = zl.getlm(); 

double re2 = z2.getRe(), im2 = z2.getlm(); 

if (rel != re2) return (int)(rel - re2); 

else if (iml != im2) return (int)(iml — im2);

else return 0; 

public boolean equals(Object z) {

return compare(this, z) == 0; 

 }