Abstract data types (ADTs) are a fundamental tool for programming efficiently in an object-oriented programming language. From my understanding, the difference between implementing an ADT as a Java class is not very different from implementing a function library as a set of static methods. The main difference is that we associate data with the function implementation and we hide the representation of …