A Doubly Linked List implementation in Java that gives you access to the nodes and exposes methods like replaceNode, removeNode, etc. which let you manipulate the list in O(1) time.
The most significant difference between this and Java's own implementation is the fact that Java's linked list does not give you access to its nodes so, you are not able to hold a reference to a node and remove it from the list in O(1) time.
This implementation can be used as-is in another program or used as a template for writing a Doubly Linked List.