I am primarily a C programmer learning Java. I found this thread because I also wonder why there was no linked implementation of the list where you could just delete the object directly without looking for it. Search is linearly incredibly inefficient. The list maintained by the hash table is better, but you really don't know how the hash table will be executed.
The reason you can easily do this in C is because usually the list item object itself contains the next and previous pointers, so given the object, this is an easy way to manipulate multiple pointers to remove an item from the list, so this is an operation O (1). In Java, you have an object, but you do not have direct access to pointers, because they are supported separately in the list. Thus, you need to search for the object either linearly or using a hash table.
It seems that this problem can be solved by creating an implementation of a linked list, where each type of object added to the list will have to implement the LinkedListElement interface, which will support the receipt and installation of the next and previous pointers. You will need to add the following and previous pointers to your class and implement the functions for getting and setting them. The link list class can then easily remove the object, because the object itself contains pointers.
source share