使用泛型實現棧結構
泛型類就是含有一個或者多個型別引數的類。定義泛型類很簡單,只需要在類的名稱後面加上“<”和“>”,並在其中指明型別引數,比如本例中的T。
也可以在其中指明多個引數,如K、V。多個引數之間使用逗號隔開。定義完類後,就可以在類中的域和方法中使用泛型引數。
注意: 泛型型別的引數只能使用類型別,而不能使用基本型別。
設計過程:
1)編寫泛型類Stack,在該類中定義了3個方法,分別用來入棧的push()方法、用來出棧的pop()方法和用來判斷棧是否為空的empty()方法。在底層上,本類使用LinkedList作為容器,它是Java集合類的一員,可以用來簡化開發。程式碼如下:
public class Stack<T> {
private LinkedList<T> container = new LinkedList<T>();
public void push(T t) {
container.addFirst(t);
}
public T pop() {
return container.removeFirst();
}
public boolean empty() {
return container.isEmpty();
}
}
2)編寫測試代類StackTest,在該類的main()方法中向棧中增加3個字串,又從棧中刪去3個字串並進行輸出。程式碼如下:
public class StackTest {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
System.out.println("向棧中增加字串:");
System.out.println("視訊學Java");
System.out.println("細說Java");
System.out.println("Java從入門到精通(第2版)");
stack.push("視訊學Java"); //向棧中增加字串
stack.push("細說Java"); //向棧中增加字串
stack.push("Java從入門到精通(第2版)"); //向棧中增加字串
System.out.println("從棧中取出字串:");
while (!stack.empty()) {
System.out.println((String) stack.pop());//刪除棧中全部元素並進行輸出
}
}
}
結果如下:
相關文章
- 利用泛型模擬棧結構實現內部鏈式儲存結構泛型
- js實現資料結構--棧JS資料結構
- 資料結構之php實現棧資料結構PHP
- 資料結構 使用2個棧實現一個佇列資料結構佇列
- 集合框架-用LinkedList實現棧結構框架
- Java棧資料結構的實現方式Java資料結構
- 資料結構-js實現棧和佇列資料結構JS佇列
- 泛型總結泛型
- 資料結構和演算法-切片實現棧資料結構演算法
- 資料結構-棧&佇列&Deque實現比較資料結構佇列
- php實現基本資料結構之棧、佇列PHP資料結構佇列
- 【資料結構】順序棧的實現(c++)資料結構C++
- Java中如何使用泛型實現介面中的列表集合?Java泛型
- JAVA泛型使用練習2(自定義泛型使用)Java泛型
- 第十六篇:泛型演算法結構泛型演算法
- .net 2.0 Nullable泛型結構的應用Null泛型
- @資料結構C/C++版(5)《棧的順序儲存結構以及進棧和出棧操作的實現》資料結構C++
- 棧結構
- 【資料結構】堆疊(順序棧、鏈棧)的JAVA程式碼實現資料結構Java
- 實驗---泛型泛型
- 簡單易懂的 Go 泛型使用和實現原理介紹Go泛型
- 泛型最佳實踐:Go泛型設計者教你如何用泛型泛型Go
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- python資料結構之棧、佇列的實現Python資料結構佇列
- 泛型類、泛型方法、型別萬用字元的使用泛型型別字元
- java實現單連結串列、棧、佇列三種資料結構Java佇列資料結構
- C 語言實現泛型 swap 函式泛型函式
- Java泛型的理解與等價實現Java泛型
- GOLANG使用嵌入結構實現介面Golang
- python使用泛型Python泛型
- 泛型使用場景泛型
- 泛型物件的使用泛型物件
- Go 官方出品泛型教程:如何開始使用泛型Go泛型
- 資料結構-棧(通過陣列和單向連結串列實現)資料結構陣列
- Java泛型建構函式Java泛型函式
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 泛型類、泛型方法及泛型應用泛型
- 在C語言中實現泛型程式設計C語言泛型程式設計