Ответ
В Java интерфейсы определяют контракт, который должны реализовывать классы. Вот ключевые стандартные интерфейсы:
java.lang.Comparable<T>- для естественного порядка сортировки:
class Person implements Comparable<Person> {
@Override
public int compareTo(Person other) {
return this.name.compareTo(other.name);
}
}
java.util.Comparator<T>- для альтернативных способов сравнения:
Comparator<Person> byAge = Comparator.comparingInt(p -> p.age);
java.lang.Runnable- для выполнения в потоках:
new Thread(() -> System.out.println("Running")).start();
java.util.Iterator<E>- для перебора коллекций:
Iterator<String> it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
-
java.util.Collection<E>- базовый интерфейс коллекций. -
java.util.List<E>,Set<E>,Map<K,V>- интерфейсы основных структур данных. -
java.util.functionпакет (Function, Predicate, Consumer, Supplier) - для лямбда-выражений.