Java使用泛型實(shí)現(xiàn)棧結(jié)構(gòu)的示例代碼
使用泛型實(shí)現(xiàn)棧結(jié)構(gòu)
1.題目
泛型是JAVA重要的特性,使用泛型編程,可以使代碼復(fù)用率提高。
實(shí)現(xiàn):使用泛型實(shí)現(xiàn)棧結(jié)構(gòu)
2.解題思路
創(chuàng)建一個(gè)泛型類:Stack。
定義3個(gè)方法,入棧的push方法,出棧的pop方法,還有判斷棧是否為空的empty()方法。
在底層實(shí)現(xiàn)上,使用LinkedList作為容器。
泛型類是含有一個(gè)或多個(gè)類型參數(shù)的類。定義泛型類很簡(jiǎn)單,只需要在類的名稱后面加上“<”和“>”,并在其中指明類型參數(shù)。
3.代碼詳解
Stack
package com.xiaoxuzhu; import java.util.LinkedList; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改記錄: * 修改后版本 修改人 修改日期 修改內(nèi)容 * 2022/5/10.1 xiaoxuzhu 2022/5/10 Create * </pre> * @date 2022/5/10 */ 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(); } }
StackTest
package com.xiaoxuzhu; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改記錄: * 修改后版本 修改人 修改日期 修改內(nèi)容 * 2022/5/10.1 xiaoxuzhu 2022/5/10 Create * </pre> * @date 2022/5/10 */ public class StackTest { public static void main(String[] args) { Stack<String> stack = new Stack<String>(); System.out.println("向棧中增加字符串:"); System.out.println("虛竹哥真帥"); System.out.println("虛竹哥yyds"); System.out.println("虛竹哥好厲害"); stack.push("虛竹哥真帥"); //向棧中增加字符串 stack.push("虛竹哥yyds"); //向棧中增加字符串 stack.push("虛竹哥好厲害"); //向棧中增加字符串 System.out.println("從棧中取出字符串:"); while (!stack.empty()) { System.out.println((String) stack.pop());//刪除棧中全部元素并進(jìn)行輸出 } } }
多學(xué)一個(gè)知識(shí)點(diǎn)
1、泛型參數(shù)的命名一般使用單個(gè)的大寫字母,如果對(duì)于任意類型可以使用字母T等。
2、泛型類型的參數(shù)只能使用類類型,而不能使用基本數(shù)據(jù)類型。
到此這篇關(guān)于Java使用泛型實(shí)現(xiàn)棧結(jié)構(gòu)的示例代碼的文章就介紹到這了,更多相關(guān)Java棧結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實(shí)現(xiàn)權(quán)限驗(yàn)證的示例步驟
權(quán)限驗(yàn)證是一種用于控制對(duì)系統(tǒng)資源和操作的訪問(wèn)的機(jī)制。它允許開(kāi)發(fā)人員定義誰(shuí)可以執(zhí)行特定操作或訪問(wèn)特定資源,并確保只有經(jīng)過(guò)授權(quán)的用戶才能執(zhí)行這些操作,這篇文章主要介紹了SpringBoot實(shí)現(xiàn)權(quán)限驗(yàn)證,需要的朋友可以參考下2023-08-08SpringBoot實(shí)現(xiàn)點(diǎn)餐系統(tǒng)的登錄與退出功能流程詳解
結(jié)束了Springboot+MyBatisPlus也是開(kāi)始了項(xiàng)目之旅,將從后端的角度出發(fā)來(lái)整理這個(gè)項(xiàng)目中重點(diǎn)業(yè)務(wù)功能的梳理與實(shí)現(xiàn)2022-10-10微服務(wù)中使用Maven BOM來(lái)管理你的版本依賴詳解
這篇文章主要介紹了微服務(wù)中使用Maven BOM來(lái)管理你的版本依賴,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12java實(shí)現(xiàn)微信公眾號(hào)消息推送的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用java實(shí)現(xiàn)微信公眾號(hào)消息推送的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10Java將中文轉(zhuǎn)化為拼音的簡(jiǎn)單代碼示例
在我們使用手機(jī)通訊錄或各種APP的搜索功能時(shí),既可以根據(jù)中文搜索,也可以根據(jù)拼音搜索,這種時(shí)候就使用到了中文轉(zhuǎn)拼音的功能了,下面這篇文章主要給大家介紹了關(guān)于Java將中文轉(zhuǎn)化為拼音的簡(jiǎn)單代碼示例,需要的朋友可以參考下2024-03-03