Я новичок в Java, поэтому мне хотелось подтвердить, что у нас есть разные типы объектов в методе сравнения при реализации интерфейса компаратора. Вроде. сравнить (Employee, Department). или evertime мы передадим тот же тип объекта Ex, либо Employee, либо Department. Это будет полезно для меня, если вы дадите ответ в деталях. Пожалуйста, подтвердите мне .THANKS в Advance ШахидJava Comparator Связанный
ответ
Вы можете реализовать метод, как:
int compare(Object a, Object b);
и сравнивать апельсины с яблоками, если вы хотите. Если вам нужно быть немного более строгим, вы можете (должны!) Определить то, что должен иметь общий объект. Затем вы можете начать с интерфейсом:
public interface CorporateObject
{
int getUselesnessFactor();
}
, а затем сделать как ваш сотрудник и классы Отдел реализовать:
public class Employee implements CorporateObject
{...
public class Department implements CorporateObject
{...
Наконец, сравнить метод будет выглядеть следующим образом:
public int compare(CorporateObject a, CorporateObject b){
if(a.getUselesnessFactor() < b.getUselesnessFactor()) return -1;
if(a.getUselesnessFactor() > b.getUselesnessFactor()) return 1;
return 0;
}
Вы бы использовали этот метод следующим образом:
int result;
Employee boss = new Employee();
Employee john = new Employee();
Department nosepickers = new Departement();
Department slackmasters = new Department();
result = compare(boss, john); // employee to employee
result = compare(nosepickers, slackmasters); // dept to dept
result = compare(boss, nosepickers); // employee to dept
result = compare(slackmasters, john); // dept to employee
и т. Д.
Не могу передать данные Employee и Department для сравнения (Employee emp, Department dept) вместо CorporateObject, я думаю, что это тоже должно работать ... Если я ошибаюсь, помогите мне понять вашу концепцию (CorporateObject a, CorporateObject b) .. Согласно вашему коду, я понимаю, что метод сравнения всегда принимает тот же тип refernece. Справка Pls – shahid
см. Отредактированный ответ - вы можете передавать оба в любой комбинации. Для этого нужен интерфейс - методу сравнения не важно, что именно CorporateObject вы передаете, если они реализуют общий интерфейс. – ptrk
Благодарим вас за ценные комментарии. Это помогло мне понять концепцию более понятной. – shahid
- 1. Предупреждение Java Comparator
- 2. Java Embedded Comparator Class
- 3. Реализация Java Comparator
- 4. Использование Java Comparator
- 5. Java Comparator compareToIgnoreCase
- 6. Реализация COMPARATOR в java
- 7. Python эквивалент Java Comparator
- 8. Java PriorityQueue Comparator
- 9. Java: Как использовать интерфейс `Comparator`
- 10. Внедрение класса Comparator в Java
- 11. Java Comparator всегда считывает значения как строки
- 12. Java Comparator Несколько полей сортировка не работает
- 13. Java Comparator дается имя объекта для сравнения
- 14. Java PriorityQueue и Comparator не правильно упорядочен
- 15. Порядок сортировки Java Comparator с повторяющимися значениями
- 16. Java Comparator для строк, содержащих целые числа
- 17. Как использовать интерфейс Comparator в Java?
- 18. Проблемы с реализацией Java Comparator - Generics
- 19. Странное поведение: Java Comparator рандомизирует записи списка
- 20. Сортировка 2d массивов с использованием Java Comparator
- 21. Java сортировка объектов с использованием Comparator
- 22. Использование интерфейса Comparator Java - Сортировка файлов
- 23. Java java.util.Map.Entry и Collection.sort (List, Comparator)
- 24. Перемещение логики Java Comparator из сущности?
- 25. Java Comparator основан на внешнем (третьем) значении
- 26. Multiline lambda comparator
- 27. java interface - связанный с объектом связанный
- 28. Является ли min (Comparator) равным сортировке (Comparator) .findFirst()?
- 29. boost variant comparator
- 30. Point2D Comparator, указав ошибку
Почему вы хотите это сделать? –
, реализуя inteface, сопоставимый – tung
Вы можете сравнить их как 'Object's. Все объекты в Java наследуются от класса Object. – khelwood