title: How can Comparator be a Functional Interface when it has two abstract methods?
body: <p>In Java 8, the <code>@FunctionalInterface</code> annotation is introduced to denote any interface that has exactly one abstract method as a functional interface. One of the reason for its introduction is to indicate the user (programmer), that lambda expression can be used in context of a functional interface. </p>
  
  <p>The <code>Comparator</code> interface is annotated with <code>@FunctionalInterface</code>. But, two methods are abstract.</p>
  
  <pre><code>int compare(T o1, T o2);
  </code></pre>
  
  <p>and</p>
  
  <pre><code>boolean equals(Object obj);
  </code></pre>
  
  <p>In the docs of <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html" rel="noreferrer"><code>FunctionalInterface</code></a>, it is clearly mentioned as</p>
  
  <blockquote>
    <p>Conceptually, a functional interface has exactly one abstract method.</p>
  </blockquote>
  
  <p>Isn't the <code>equals</code> method not considered as abstract here? </p>