Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279

Интерфейс Comparable

14.10.2012, 01:29. Показов 3421. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учу Java и наткнулся на этот интерфейс. Он имеет всего один метод compareTo(), так как это интерфейс, то мы должны его реализовать. В документации написано что метод возвращает значения -1, 0 и 1 в зависимости от сравниваемых объектов. Но я вот чего не понимаю, я не очень знаком пока с интерфейсами, но если именно мы задаем реализацию этого метода, тогда почему указывается уже конечный результат реализации и в чем вообще смысл этого интерфейса если я могу точно так же реализовать свою функцию, не подключая его?

Добавлено через 5 минут
Или возможно первоначальной целью была реализация этого интерфейса для многих стандартных библиотек, а разработчик уже как сам хочет, использовать или нет?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2012, 01:29
Ответы с готовыми решениями:

Интерфейс Comparable
Создайте класс Faculty, включающий два строковых и одно числовое поле. Создайте массив объектов данного класса, заполнив значения полей с...

Интерфейс Comparable для шаблонов
Здравствуйте. Подскажите, пожалуйста, как реализовать метод сравнения для шаблона. Сравнение должно происходить по полю data. public...

Как реализовать Интерфейс Comparable
Добрый день подскажите пожалуйста: У меня есть коллекция фильмов, фильмы содержат: название, продюсер и категорию. Класс фильм я сделала...

3
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.10.2012, 02:05
Вам нужно почитать про принципы ООП и роль интерфейсов и абстрактных классов в нём
0
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
14.10.2012, 02:17  [ТС]
mutagen, да я в принципе в курсе, просто в основном встречал интерфейс с многими методами, которые повязаны общей идеологией, но интерфейс с одним всего методом, зачем пользователю использовать?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.10.2012, 02:24
есть и интерфейсы без методов, например Serializable, но вам нужно заглянуть в код TreeMap чтобы понять для чего нужен(вернее обязан быть) Comparable

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public V put(K key, V value) {
        Entry<K,V> t = root;
        if (t == null) {
            compare(key, key); // Вот эта точка и дальше тоже
 
            root = new Entry<>(key, value, null);
            size = 1;
            modCount++;
            return null;
        }
        int cmp;
        Entry<K,V> parent;
        // split comparator and comparable paths
        Comparator<? super K> cpr = comparator;
        if (cpr != null) {
            do {
                parent = t;
                cmp = cpr.compare(key, t.key);
                if (cmp < 0)
                    t = t.left;
                else if (cmp > 0)
                    t = t.right;
                else
                    return t.setValue(value);
            } while (t != null);
        }
        else {
            if (key == null)
                throw new NullPointerException();
            Comparable<? super K> k = (Comparable<? super K>) key;
            do {
                parent = t;
                cmp = k.compareTo(t.key);
                if (cmp < 0)
                    t = t.left;
                else if (cmp > 0)
                    t = t.right;
                else
                    return t.setValue(value);
            } while (t != null);
        }
        Entry<K,V> e = new Entry<>(key, value, parent);
        if (cmp < 0)
            parent.left = e;
        else
            parent.right = e;
        fixAfterInsertion(e);
        size++;
        modCount++;
        return null;
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2012, 02:24
Помогаю со студенческими работами здесь

Интерфейс Comparable для любого поля класса
Приветствую! Требуется выполнить сортировку массива объектов по любому из полей на выбор пользователя. Сабж: возможно ли это...

Comparable в Array
Доброго времени суток! :) Есть всем знакомый класс Person: public class Person implements Comparable&lt;Person&gt;, Cloneable { ...

Comparable vs Comparator
Несколько дней бьюсь над этой темой, но все равно остается недопонимание. Вот, например, в этой статье приводиться следующий пример: ...

Реализация с интерфейсом Comparable
Подскажите пожалуйста как правильно реализовать в Классе Megaphone сортировку с помощью интерфейса Comparable. Метод compareTo я...

Переопределить метод интерфейса Comparable для подкласса
Медленными шагами развиваюсь по книге Хорстмана и Корнелла, наткнулся на такую проблему: У меня есть следующие классы: Pet import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru