Creo que la escritura del autor es tan buena que tengo que guardarla.
Comprensión de este ejemplo:
// Los parámetros de tipo no pueden usar tipos básicos. T y U son en realidad del mismo tipo.
// Cada vez que se colocan nuevos datos, se convierte en una nueva parte superior. Empuje la parte superior original un nivel hacia abajo y establezca un enlace a través del puntero.
// El centinela final es un nodo creado por el constructor predeterminado que es coherente con end() que devuelve verdadero.
Copie el código de código de la siguiente manera:
//: genéricos/LinkedStack.java
// Una pila implementada con una estructura vinculada interna.
genéricos de paquetes;
clase pública LinkedStack<T> {
clase estática privada Nodo<U> {
artículo U;
Nodo<U> siguiente;
Nodo() { elemento = nulo; siguiente = nulo }
Nodo (elemento U, Nodo <U> siguiente) {
this.item = artículo;
this.siguiente = siguiente;
}
final booleano() { elemento de retorno == nulo && siguiente == nulo }
}
Nodo privado<T> arriba = nuevo Nodo<T>() // Finalizar centinela
push de vacío público (elemento T) {
arriba = nuevo Nodo<T>(elemento, arriba);
}
público Tpop() {
T resultado = top.item;
si(!arriba.end())
arriba = arriba.siguiente;
resultado de devolución;
}
público estático vacío principal (String [] argumentos) {
LinkedStack<String> lss = nuevo LinkedStack<String>();
for(String s: "¡Phasers en aturdimiento!".split(" "))
lss.push(s);
Cuerda ss;
mientras((ss = lss.pop()) != nulo)
System.out.println(ss);
//----- si ponemos un número entero en LinkedList
LinkedStack<Integer> lii = nuevo LinkedStack<Integer>();
para(Entero i = 0; i < 10; i++){
lii.push(i);
}
Extremo entero;
mientras((fin = lii.pop()) != nulo)
System.out.println(fin);
//----- fin de la prueba de enteros!
}
}
/* Producción:
¡aturdir!
en
fásers
*/