ホームページ >Java >&#&チュートリアル >Java プログラミングにおけるジェネリックスのアイデアは、スタック クラスを実装します。

Java プログラミングにおけるジェネリックスのアイデアは、スタック クラスを実装します。

高洛峰
高洛峰オリジナル
2017-01-24 15:17:071647ブラウズ

作者の文章がとても良いので保存しておきたいと思います。

この例の理解:

//型パラメータは、実際には、基本型を使用できません。

//新しいデータを置くたびに、元のトップを 1 レベル下に押して、ポインタを介してリンクを確立します。

//エンドセンチネルは、end() が 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
*/

Java プログラミングのアイデアについてさらに詳しく知りたい場合は、スタック クラスを実装してください。関連記事を共有するには、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。