Preserving Unique References in Java Lists
The Java collection framework introduces aliasing when objects are added to and accessed from collections. This thesis describes a list component implemented in Java that preserves unique references of objects in the list, thereby avoiding undesired aliasing. We compared the running time of our list with three other lists from Java collections (Java collection framework, Google, and Functional Java) in five different applications. We found that the performance of our list was usually slightly slower than the performance of the Java list, but often much faster than the Google and Functional Java lists. We also compared the reasoning complexity of our list with Java's list by creating tracing tables for a method from a towers-of-Hanoi application and comparing the number of tokens in the table using our list with the number of tokens in the table using the Java list. We found that the number of tokens in the tracing table using the Java list was much higher than the number of tokens in the table using our list. We argue that this result will occur in any table for applications that use mutable list objects.