Heim Java javaLernprogramm Generika in Java-Programmierideen implementieren eine Stack-Klasse Share

Generika in Java-Programmierideen implementieren eine Stack-Klasse Share

Jan 24, 2017 pm 03:17 PM

Ich finde den Text des Autors so gut, dass ich ihn speichern muss.

Verständnis dieses Beispiels:

//Typparameter können nicht die Grundtypen T und U verwenden, die tatsächlich vom gleichen Typ sind.

//Jedes Mal, wenn Sie neue Daten eingeben, wird daraus ein neues Top. Schieben Sie das ursprüngliche Top eine Ebene nach unten und stellen Sie über den Zeiger eine Verknüpfung her.

//Der End-Sentinel ist ein vom Standardkonstruktor erstellter Knoten, der die Anforderung erfüllt, dass end() true zurückgibt.

//: 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
*/
Nach dem Login kopieren

Für weitere Generika in Java-Programmierideen implementieren Sie eine Stack-Klasse. Um verwandte Artikel zu teilen, achten Sie bitte auf die chinesische PHP-Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann man in Java Remote -Debugging konstante Werte auf Remote -Servern korrekt erhalten? Wie kann man in Java Remote -Debugging konstante Werte auf Remote -Servern korrekt erhalten? Apr 19, 2025 pm 01:54 PM

Fragen und Antworten zum ständigen Akquisition beim Remote -Debuggen von Java Bei der Verwendung von Java für das entfernte Debuggen können viele Entwickler auf schwierige Phänomene stoßen. Es...

Wie unterscheidet man in der Back-End-Entwicklung die Verantwortlichkeiten der Serviceschicht und der DAO-Schicht? Wie unterscheidet man in der Back-End-Entwicklung die Verantwortlichkeiten der Serviceschicht und der DAO-Schicht? Apr 19, 2025 pm 01:51 PM

Erörterung der hierarchischen Architektur in der Back-End-Entwicklung. In der Back-End-Entwicklung ist die hierarchische Architektur ein gemeinsames Designmuster, in der es normalerweise Controller, Service und DAO drei Ebenen ...

Wie konvertieren Sie Namen in Zahlen, um Sortieren innerhalb von Gruppen zu implementieren? Wie konvertieren Sie Namen in Zahlen, um Sortieren innerhalb von Gruppen zu implementieren? Apr 19, 2025 pm 01:57 PM

Wie konvertieren Sie Namen in Zahlen, um Sortieren innerhalb von Gruppen zu implementieren? Bei der Sortierung von Benutzern in Gruppen ist es häufig erforderlich, den Namen des Benutzers in Zahlen umzuwandeln, damit er anders sein kann ...

Was sollte ich tun, wenn eine Schnittstelle von Drittanbietern im Spring-Boot-Projekt aufgerufen wird und die Methode für den Feldnamen und die Getter-Methode inkonsistent ist, was zu einem Datenübertragungsfehler führt? Was sollte ich tun, wenn eine Schnittstelle von Drittanbietern im Spring-Boot-Projekt aufgerufen wird und die Methode für den Feldnamen und die Getter-Methode inkonsistent ist, was zu einem Datenübertragungsfehler führt? Apr 19, 2025 pm 02:03 PM

Die Schwierigkeiten beim Aufrufen von Schnittstellen von Drittanbietern zum Senden von Daten im Springboot-Projekt werden für eine Feder ...

Warum meldet es einen Fehler beim Einreichen eines Pyflink -Jobs auf Garn? Warum meldet es einen Fehler beim Einreichen eines Pyflink -Jobs auf Garn? Apr 19, 2025 pm 02:06 PM

Analyse des Grundes, warum das Python -Skript nicht gefunden werden kann, wenn Sie einen Pyflink -Job auf Garn einreichen, wenn Sie versuchen, einen Pyflink -Job über Garn einzureichen. Sie können begegnen ...

Wie modifiziere ich den Parameter SavePath von @Excel Annotation in Easypoi dynamisch, wenn das Projekt in Java beginnt? Wie modifiziere ich den Parameter SavePath von @Excel Annotation in Easypoi dynamisch, wenn das Projekt in Java beginnt? Apr 19, 2025 pm 02:09 PM

So konfigurieren Sie die Parameter von Entitätsklassenanmerkungen in Java während des Entwicklungsprozesses dynamisch.

See all articles