Java編程思想里的泛型實現(xiàn)一個堆棧類 分享
覺得作者寫得太好了,不得不收藏一下。
對這個例子的理解:
//類型參數(shù)不能用基本類型,T和U其實是同一類型。
//每次放新數(shù)據(jù)都成為新的top,把原來的top往下壓一級,通過指針建立鏈接。
//末端哨兵既是默認構(gòu)造器創(chuàng)建出的符合end()返回true的節(jié)點。
//: 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
*/
- 利用數(shù)組實現(xiàn)棧(Java實現(xiàn))
- 淺談Java數(shù)組的一些使用方法及堆棧存儲
- Java中使用數(shù)組實現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)實例
- JAVA中堆、棧,靜態(tài)方法和非靜態(tài)方法的速度問題
- Java實現(xiàn)棧和隊列面試題
- java中棧和隊列的實現(xiàn)和API的用法(詳解)
- Java使用Deque實現(xiàn)堆棧的方法
- 用Java代碼實現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)的基本方法歸納
- java使用泛型實現(xiàn)棧結(jié)構(gòu)示例分享
- JAVA基于靜態(tài)數(shù)組實現(xiàn)棧的基本原理與用法詳解
相關(guān)文章
Assert.assertEquals的使用方法及注意事項說明
這篇文章主要介紹了Assert.assertEquals的使用方法及注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù)
這篇文章主要介紹了spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01java如何將int數(shù)組轉(zhuǎn)化為Integer數(shù)組
這篇文章主要介紹了java如何將int數(shù)組轉(zhuǎn)化為Integer數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11Java中BigInteger類的使用方法詳解(全網(wǎng)最新)
這篇文章主要介紹了Java中BigInteger類的使用方法詳解,常用最全系列,本章作為筆記使用,內(nèi)容比較全面,但常用的只有:構(gòu)造函數(shù),基本運算以及compareTo(),intValue(),setBit(),testBit()方法,需要的朋友可以參考下2023-05-05Java Hibernate中的持久化類和實體類關(guān)系
Hibernate是一種Java對象關(guān)系映射框架,通過持久化類將Java對象映射到數(shù)據(jù)庫表中。持久化類需要實現(xiàn)無參構(gòu)造器、具有標識屬性和使用注解或XML進行映射。Hibernate通過Session來管理對象的狀態(tài),包括臨時狀態(tài)、持久化狀態(tài)和游離狀態(tài)2023-04-04詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法
這篇文章主要介紹了詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09