Maison >Java >javaDidacticiel >Les génériques dans les idées de programmation Java implémentent une classe de pile
Je pense que l’écriture de l’auteur est si bonne que je dois la sauvegarder.
Compréhension de cet exemple :
//Les paramètres de type ne peuvent pas utiliser les types de base. T et U sont en fait du même type.
//Chaque fois que vous mettez de nouvelles données, elles deviennent un nouveau sommet, poussent le sommet d'origine vers le bas d'un niveau et établissent un lien via le pointeur.
//La sentinelle de fin est un nœud créé par le constructeur par défaut qui répond à l'exigence selon laquelle end() renvoie true.
//: generics/LinkedStack.java // A stack implemented with an internal linked structure. package generics; public class LinkedStack<T> { private static class Node<U> { U item; Node<U> next; Node() { item = null; next = null; } Node(U item, Node<U> next) { this.item = item; this.next = next; } boolean end() { return item == null && next == null; } } private Node<T> top = new Node<T>(); // End sentinel public void push(T item) { top = new Node<T>(item, top); } public T pop() { T result = top.item; if(!top.end()) top = top.next; return result; } public static void main(String[] args) { LinkedStack<String> lss = new LinkedStack<String>(); for(String s : "Phasers on stun!".split(" ")) lss.push(s); String ss; while((ss = lss.pop()) != null) System.out.println(ss); //----- if put integer into the LinkedList LinkedStack<Integer> lii = new LinkedStack<Integer>(); for(Integer i = 0; i < 10; i++){ lii.push(i); } Integer end; while((end = lii.pop()) != null) System.out.println(end); //----- integer test end! } } /* Output: stun! on Phasers */
Pour plus d'idées de programmation génériques en Java, implémentez une classe de pile. Pour partager des articles connexes, veuillez faire attention au site Web PHP chinois !