Sto cercando di capire cos'è esattamente un'API.
Dalla mia attuale comprensione, un'API (Application Programming Interface) è un contratto fornito da un'istanza software, che garantisce un insieme definito di comportamenti, che sono innescati da un insieme definito di azioni.
Un'API è una sorta di costrutto "pubblico", in quanto definisce le regole di comunicazione con il mondo esterno.
Allo stesso modo, un'interfaccia Java in poche parole, è anche un costrutto, che una determinata classe Java (che implementa quell'interfaccia) deve fornire, ad es. fornire la funzionalità definita in tale interfaccia (scrivendo le implementazioni della funzione).
Entrambi sembrano fare praticamente la stessa cosa, definendo un insieme di comportamenti che verranno attivati se viene intrapresa l'azione giusta (ad es., chiamata o formato della chiamata).
Quindi è corretto fare riferimento alle interfacce fornite da Java (ad es. raccolte) o anche a quelle scritte da me, come API?