{"id":{"repo_id":"vt","oai_identifier":"oai:vtechworks.lib.vt.edu:10919/36343"},"canonical_url":"https://search.dev.ndltd.org/etd/vt/oai:vtechworks.lib.vt.edu:10919/36343","repository":{"repo_id":"vt","name":"Virginia Tech","base_url":"https://vtechworks.lib.vt.edu/oai/request"},"display":{"title":"Preserving Unique References in Java Lists","abstract":"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.","abstract_html":"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&#x27;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.","abstract_has_math":false,"creators":["Smith, Daniel Wayne"],"institution":"Virginia Tech","degree_name":"Master of Science","degree_level":"masters","degree_discipline":"Computer Science","degree_department":"Computer Science","school":null,"contributors":[],"advisors":[],"committee_chairs":["Kulczycki, Gregory W."],"committee_members":["Frakes, William B.","Egyhazy, Csaba J."],"year":2010,"date_issued":"2010-12-07","date_published":"2010-12-07","updated_at":"2026-07-22T22:20:31Z","subjects":["alias avoidance","software engineering","unique references"],"languages":[],"rights":["In Copyright"],"rights_urls":["http://rightsstatements.org/vocab/InC/1.0/"],"identifier_entries":[{"key":"dc:identifier.other","label":"Dc Identifier Other","values":["etd-12202010-043523"],"render_values":[{"text":"etd-12202010-043523","href":null,"code":true}]}]},"links":{"outbound_url":"http://hdl.handle.net/10919/36343","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.committeechair","label":"Committee Chair","values":["Kulczycki, Gregory W."]},{"key":"dc:contributor.committeemember","label":"Committee Member","values":["Frakes, William B.","Egyhazy, Csaba J."]},{"key":"dc:contributor.department","label":"Department","values":["Computer Science"]},{"key":"dc:creator","label":"Author","values":["Smith, Daniel Wayne"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2014-03-14T20:50:31Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2014-03-14T20:50:31Z","2011-01-18"]},{"key":"dc:date.issued","label":"Date","values":["2010-12-07"]},{"key":"dc:publisher","label":"Institution","values":["Virginia Tech"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["masters"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master of Science"]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["Virginia Polytechnic Institute and State University"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["alias avoidance","software engineering","unique references"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:rights","label":"Dc Rights","values":["In Copyright"]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://rightsstatements.org/vocab/InC/1.0/"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.other","label":"Dc Identifier Other","values":["etd-12202010-043523"]},{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/10919/36343"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["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."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["Master of Science"]},{"key":"dc:title","label":"Title","values":["Preserving Unique References in Java Lists"]}]}],"canonical_facts":{"dc:contributor.committeechair":["Kulczycki, Gregory W."],"dc:contributor.committeemember":["Frakes, William B.","Egyhazy, Csaba J."],"dc:contributor.department":["Computer Science"],"dc:creator":["Smith, Daniel Wayne"],"dc:date.accessioned":["2014-03-14T20:50:31Z"],"dc:date.available":["2014-03-14T20:50:31Z","2011-01-18"],"dc:date.issued":["2010-12-07"],"dc:description.abstract":["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."],"dc:description.degree":["Master of Science"],"dc:identifier.other":["etd-12202010-043523"],"dc:identifier.uri":["http://hdl.handle.net/10919/36343"],"dc:publisher":["Virginia Tech"],"dc:rights":["In Copyright"],"dc:rights.uri":["http://rightsstatements.org/vocab/InC/1.0/"],"dc:subject":["alias avoidance","software engineering","unique references"],"dc:title":["Preserving Unique References in Java Lists"],"dc:type":["Thesis"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["masters"],"thesis:degree_name":["Master of Science"],"thesis:institution_name":["Virginia Polytechnic Institute and State University"]},"updated_at":"2026-07-22T22:20:31Z"}