สแต็กเป็นหนึ่งในโครงสร้างข้อมูลที่สำคัญที่สุดในภาษา Java การใช้งานอย่างน้อยควรมีวิธีการต่อไปนี้:
1. การดำเนินการป๊อป () ป๊อปอัปองค์ประกอบด้านบนของสแต็ก
2.กด(E e) การดำเนินการกด
3.peek() ดูองค์ประกอบด้านบนของสแต็ก
4.isEmpty() สแต็กว่างเปล่าหรือไม่?
นอกจากนี้ เมื่อนำสแต็กไปใช้ ควรพิจารณาประเด็นหลายประการ:
1. ขนาดเริ่มต้นของสแต็กและวิธีเพิ่มพื้นที่สแต็กใหม่หลังจากสแต็กเต็ม
2. จำเป็นต้องมีการซิงโครไนซ์เมื่อทำการอัพเดตสแต็ก
ตัวอย่างง่ายๆ โดยใช้อาร์เรย์เพื่อนำสแต็กไปใช้ โค้ดจะเป็นดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
สแต็คคลาสสาธารณะ <E> {
// Java ไม่รองรับอาร์เรย์ทั่วไป โปรดใช้คอนเทนเนอร์ที่ Java เตรียมไว้ให้
สแต็ควัตถุส่วนตัว [];
//ขนาดเริ่มต้นเริ่มต้นของสแต็ก
int สุดท้ายคงที่ส่วนตัว INIT_SIZE = 2;
//สแต็กดัชนีบนสุด
ดัชนี int ส่วนตัว
สาธารณะStack() {
stack = วัตถุใหม่ [INIT_SIZE];
ดัชนี = -1;
-
-
*วิธีการก่อสร้าง
-
* @param initSize
* ขนาดเริ่มต้นของสแต็ก
-
สแต็คสาธารณะ (int initSize) {
ถ้า (initSize < 0) {
โยน IllegalArgumentException ใหม่ ();
-
stack = วัตถุใหม่ [initSize];
ดัชนี = -1;
-
-
* การทำงานของป๊อป
-
* @return วัตถุบนสแต็ก
-
E ป๊อปที่ซิงโครไนซ์สาธารณะ () {
ถ้า (!isEmpty()) {
E อุณหภูมิ = มอง ();
สแต็ก [ดัชนี--] = null;
อุณหภูมิกลับ;
-
กลับเป็นโมฆะ;
-
-
* การดำเนินการแบบพุช
-
* @param obj
* วัตถุกำลังรอการผลักลงบนสแต็ก
-
โมฆะการซิงโครไนซ์สาธารณะ (E obj) {
ถ้า (isFull()) {
วัตถุ [] อุณหภูมิ = สแต็ค;
// หากสแต็กเต็ม ให้สร้างสแต็กที่มีพื้นที่สแต็กปัจจุบันเป็นสองเท่า
stack = วัตถุใหม่ [2 * stack.length];
System.arraycopy (อุณหภูมิ, 0, สแต็ก, 0, temp.length);
-
สแต็ก [++ ดัชนี] = obj;
-
-
* ดูวัตถุด้านบนบนสแต็ก
-
* @return วัตถุบนสแต็ก
-
สาธารณะ E peek () {
ถ้า (!isEmpty()) {
ส่งคืน (E) สแต็ก [ดัชนี];
-
กลับเป็นโมฆะ;
-
-
* ตรวจสอบว่าสแต็กว่างเปล่าหรือไม่
-
* @return คืนค่าเป็นจริงหากสแต็กว่างเปล่า หรือคืนค่าเท็จ
-
บูลีนสาธารณะ isEmpty() {
ดัชนีส่งคืน == -1;
-
-
* ตรวจสอบว่าสแต็คเต็มหรือไม่
-
* @return คืนค่าเป็นจริงหากสแต็กเต็ม มิฉะนั้นจะคืนค่าเท็จ
-
บูลีนสาธารณะ isFull () {
ดัชนีส่งคืน >= stack.length - 1;
-
-
ในที่สุด โครงสร้างข้อมูลของสแต็ก (java.util.Stack) ถูกนำมาใช้ใน Java มันถูกนำไปใช้โดยการสืบทอดคลาส Vector ภายใต้สถานการณ์ปกติ เราก็สามารถใช้มันได้โดยตรง