Приведи примеры стандартных интерфейсов в Java

«Приведи примеры стандартных интерфейсов в Java» — вопрос из категории Java, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java интерфейсы определяют контракт, который должны реализовывать классы. Вот ключевые стандартные интерфейсы:

  1. java.lang.Comparable<T> - для естественного порядка сортировки:
class Person implements Comparable<Person> {
    @Override
    public int compareTo(Person other) {
        return this.name.compareTo(other.name);
    }
}
  1. java.util.Comparator<T> - для альтернативных способов сравнения:
Comparator<Person> byAge = Comparator.comparingInt(p -> p.age);
  1. java.lang.Runnable - для выполнения в потоках:
new Thread(() -> System.out.println("Running")).start();
  1. java.util.Iterator<E> - для перебора коллекций:
Iterator<String> it = list.iterator();
while(it.hasNext()) {
    System.out.println(it.next());
}
  1. java.util.Collection<E> - базовый интерфейс коллекций.

  2. java.util.List<E>, Set<E>, Map<K,V> - интерфейсы основных структур данных.

  3. java.util.function пакет (Function, Predicate, Consumer, Supplier) - для лямбда-выражений.