Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
4 / 3 / 0
Регистрация: 22.08.2014
Сообщений: 80

Дополнительный метод сравнения объектов класса

25.05.2015, 17:47. Показов 852. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется класс для которого уже реализован интерфейс Comparable и перегружен метод compareTo. Сравниваются объекты лексикографически, а затем - по времени, а теперь нужно, чтобы сравнивалось наоборот (сначала - по времени, затем - лексикографически), то есть, нужен второй метод сравнения. В интернете информации не нашел, но документация на метод sort(T[] a, Comparator<? super T> c) намекает, что это возможно.

Код класса:
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
public class MyPair implements Comparable
{
    private String value;
    private Long time;
    
    MyPair(String val, Long t)
    {
        value = val;
        time = t;
    }
    
    public String getValue()
    {
        return value;
    }
    
    public Long getTime()
    {
        return time;
    }
    
    //public int myCompare(Object obj) {} ???
    
    public int compareTo(Object obj)
    {
        MyPair tmp = (MyPair)obj;
        int comp = (this.value).compareTo(tmp.value);
        if(comp == 0) return (this.time).compareTo(tmp.time);
                else return comp;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2015, 17:47
Ответы с готовыми решениями:

Создать на основе класса дополнительный метод из функции main() (односвязные списки)
//Ñîñòàâèòü ïðîãðàììó, êîòîðàÿ â ñïèñêå L çàìåíÿåò ïåðâîå âõîæäåíèå ñïèñêà L1 (åñëè òàêîå åñòü) íà ñïèñîê L2. #include &lt;iostream&gt; ...

Во всех классах реализовать интерфейс IComparable и перегрузить метод CompareTo для сравнения объектов
В программах требуется описать базовый класс (возможно, абстрактный), в котором задается интерфейс для производных классов. Во всех классах...

Метод для массива объектов класса
Существует класс mybook, в котором автор, название книги и год издания являются полями данных. Есть три метода, два из которых служат для...

1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
25.05.2015, 18:11
вот тут хорошо и подробно написано и про Компаратор и про Компарабл
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2015, 18:11
Помогаю со студенческими работами здесь

Метод класса работает одинаково для двух объектов
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; class Monster { int health, ammo, x, y, scale; public: ...

Метод класса изменяет переменную для всех объектов сразу
Программа по предмету исследование операций, на тему &quot;сетевое планирование управления&quot;. В общем, есть таблица, мы вводим к...

Задать метод события для множества объектов одного класса
Здравствуйте! Вынужден обратиться к опытным людям за советом. Имеется форма, на которой есть 60 label'ов. Необходимо, чтобы при событии...

Для массива объектов класса «Студент» создать метод сортировки по различным критериям
Для массива объектов класса «Студент» создать метод сортировки по различным критериям (по фамилии, по среднему баллу успеваемости). Метод...

Метод lfind(), как правильно написать метод сравнения?
Всем привет. У меня задача предельно проста. Есть массив char M;, В него пихаем всё, что содержится в файле while(!(feof(f))) { ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru