I'm going to be ... terribly theoretical here ... so keep an open mind, please. A separate Entry interface separates this concept from the context to which it is intended. Do not think only about the interface, but about its implementations. Take, for example, the internal static Entry class defined in HashMap :
static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; final int hash; (...) }
This Entry class is not intended to be used externally, and the interface that it implements is a maintenance contract intended only for internal use between Map s, in particular because Map is the interface itself and needs a little abstraction so that specific implementations define The type of record they will use.
In fact, I'm sure you are wondering: "Of course, but a record can be used in many situations, especially if you need a Key-Value pair." This is true, but I personally agree with the current design decision, as it provides everything that is needed to implement Map in one place.
source share