Al usar Java LinkedList, ¿cómo averigua las relaciones siguientes o anteriores del elemento?Lista Utilizada de Java Util: ¿cómo encontrarla después?
quiero decir, en una lista enlazada regulares me gustaría hacer algo como esto:
Node node1 = new Node();
Node node2 = new Node();
LinkedList list = new LinkedList();
list.add(node1);
list.add(node2);
//then my node1 will know who it's next is:
assertEquals(node2, node1.next());
donde Nodo es mi propio contenedor de datos/objeto.
Pero en LinkedList de Java, los datos no parecen modificarse. Entonces, ¿cómo puedo averiguar quién es el elemento "siguiente" (o "anterior" en el caso de las listas doblemente vinculadas)?
¿Qué pasaría si fuera 'list.add (node1); list.add (node1); '? –
LinkedList de Java es un término incorrecto y engañoso para las personas que han aprendido sobre la "lista vinculada". No es la única cosa engañosa o, al menos, mal nombrada en Java (también me viene a la mente la "excepción de modificación concurrente"). Pero, por supuesto, puede esperar comentarios de los bebedores de Java-Kool'aid que creen que todo lo que crearon los dioses de Java es perfecto para explicar por qué LinkedList es realmente una lista de enlaces comp-sci y por qué soy estúpido y todo;) – SyntaxT3rr0r
Hay un muchas cosas malas y terribles en Java, pero LinkedList y CME están bastante bien. A menos que quiera nombrarlo como ListImplementedAsDoubleLinkedList y YouOrSomebodyElseHadModifiedYourCollectionInTheMeantime, no sé cómo nombrarlo. Dicho esto, estoy de acuerdo en que un nombre mejor sería bueno, simplemente no puedo encontrar ninguno. – maaartinus