Jadual Kandungan
Contoh
Output
KESIMPULAN
Rumah Java javaTutorial Bagaimana untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik?

Bagaimana untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik?

Sep 05, 2023 pm 09:25 PM
tatasusunan timbunan Generik

Bagaimana untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik?

Java melaksanakan tindanan dengan memanfaatkan tatasusunan dan generik. Ini mewujudkan struktur data yang serba boleh dan boleh diguna semula yang beroperasi pada prinsip lepas masuk dahulu (LIFO). Mengikut prinsip ini, elemen ditambah dan dikeluarkan dari atas. Dengan menggunakan tatasusunan sebagai asas, ia memastikan peruntukan dan akses memori yang cekap. Selain itu, dengan menggabungkan generik, timbunan dapat menampung unsur-unsur pelbagai jenis, dengan itu meningkatkan kepelbagaiannya.

Pelaksanaan melibatkan takrifan kelas Tindanan yang mengandungi parameter jenis generik. Ia termasuk kaedah asas seperti push(), pop(), peek() dan isEmpty(). Pengendalian kes tepi, seperti limpahan tindanan dan aliran bawah, juga penting untuk memastikan kefungsian yang lancar. Pelaksanaan ini membolehkan pembangun membuat tindanan yang boleh menampung sebarang jenis elemen dalam Java.

Timbunan di Jawa

Di Java, tindanan ialah struktur data penting yang beroperasi pada prinsip keluar-masuk-dahulu (LIFO). Ia mewakili koleksi elemen yang mana elemen yang paling baru ditambah dialih keluar terlebih dahulu. Kelas tindanan dalam Java menyediakan pelbagai kaedah untuk memanipulasi elemen dengan cekap. Sebagai contoh, kaedah tolak membolehkan anda menambah elemen pada bahagian atas tindanan, manakala pop mengalih keluar dan mengembalikan elemen paling atas. Selain itu, intip membolehkan anda mendapatkan semula elemen teratas tanpa mengeluarkannya, dan isEmpty menyemak jika tindanan itu kosong.

import java.util.Stack;

Stack<Type> stack = new Stack<>();
stack.push(element); // Adds 'element' to the top of the stack
Type topElement = stack.pop(); // Removes and returns the top element
Type peekElement = stack.peek(); // Retrieves the top element without removing it
boolean isEmpty = stack.isEmpty(); // Checks if the stack is empty
Salin selepas log masuk

Kaedah

Terdapat cara yang berbeza untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik, kami akan menyelidiki kedua-duanya:

  • Gunakan tatasusunan untuk melaksanakan tindanan

  • Gunakan generik untuk pelaksanaan tindanan

Gunakan tatasusunan untuk melaksanakan tindanan

Apabila melaksanakan tindanan dalam Java menggunakan tatasusunan, struktur data dicipta yang mengikut prinsip masuk-dahulu-keluar (LIFO). Dalam pendekatan ini, elemen disimpan dalam tatasusunan, dan pembolehubah teratas digunakan untuk menjejaki indeks yang mewakili elemen paling atas dalam timbunan.

Kelas tindanan biasanya mengandungi pelbagai kaedah. Ini termasuk push(), yang menambah elemen ke bahagian atas tindanan, pop(), yang mengalih keluar dan mendapatkan semula elemen teratas, pe-ek(), yang membolehkan anda melihat elemen teratas tanpa mengalih keluarnya, dan isEmpty ( ), yang menyemak sama ada tindanan kosong.

Algoritma

  • Buat tatasusunan untuk menyimpan elemen timbunan.

  • Memulakan pembolehubah bernama "atas" kepada -1, menunjukkan bahawa tindanan itu kosong.

  • Tolak elemen pada tindanan:

  • Semak sama ada tindanan sudah penuh (atas == tatasusunan.panjang - 1).

  • Jika tindanan tidak penuh, naikkan pembolehubah "atas" sebanyak 1 dan tetapkan elemen kepada tatasusunan[atas].

  • Pop elemen daripada timbunan:

    • Semak sama ada tindanan kosong (atas == -1).

    • Jika tindanan tidak kosong, dapatkan semula elemen dari tatasusunan[atas] dan kurangkan pembolehubah "atas" sebanyak 1.

Contoh

public class Stack {
   private int[] array;
   private int top;
   
   public Stack(int capacity) {
      array = new int[capacity];
      top = -1;
   }
   
   public void push(int element) {
      if (top == array.length - 1) {
         System.out.println("Stack is full. Cannot push element.");
      } else {
         top++;
         array[top] = element;
         System.out.println("Pushed element: " + element);
      }
   }
   
   public int pop() {
      if (top == -1) {
         System.out.println("Stack is empty. Cannot pop element.");
         return -1;
      } else {
         int poppedElement = array[top];
         top--;
         System.out.println("Popped element: " + poppedElement);
         return poppedElement;
      }
   }
   
   public int peek() {
      if (top == -1) {
         System.out.println("Stack is empty. No element to peek.");
         return -1;
      } else {
         System.out.println("Peeked element: " + array[top]);
         return array[top];
      }
   }
   
   public boolean isEmpty() {
      return (top == -1);
   }
   
   public static void main(String[] args) {
      Stack stack = new Stack(5);
      
      stack.push(10);
      stack.push(20);
      stack.push(30);
      
      stack.pop();
      
      stack.push(40);
      stack.push(50);
      
      stack.pop();
      stack.pop();
      stack.pop();
      stack.pop();
   }
}
Salin selepas log masuk

Output

Pushed element: 10
Pushed element: 20
Pushed element: 30
Popped element: 30
Pushed element: 40
Pushed element: 50
Popped element: 50
Popped element: 40
Popped element: 20
Popped element: 10
Salin selepas log masuk

Gunakan generik untuk pelaksanaan tindanan

Pelaksanaan tindanan dengan generik boleh digunakan sebagai struktur data biasa. Ia membolehkan elemen disimpan dan diambil semula dengan cara keluar masuk dahulu (LIFO), memberikan fleksibiliti dalam mengendalikan pelbagai jenis data. Dengan memanfaatkan bahan generik, tindanan yang boleh disesuaikan ini menjadi bekas yang cekap yang mampu menyimpan unsur apa-apa jenis, menjadikannya sangat serba boleh dan boleh digunakan semula.

Algoritma

  • Buat kelas generik yang dipanggil Stack untuk menyimpan elemen dalam tindanan.

  • Di dalam kelas Stack, terdapat tatasusunan peribadi atau senarai terpaut untuk menyimpan elemen ini.

  • Timbunan dimulakan menggunakan pembina yang memperuntukkan memori yang diperlukan.

  • Untuk menambah elemen pada bahagian atas tindanan, anda perlu melaksanakan kaedah push(elemen: T), yang meningkatkan saiz tindanan dan menyimpan elemen.

  • Begitu juga, kaedah pop():T dilaksanakan untuk mengalih keluar dan mengembalikan elemen atas daripada tindanan sambil mengurangkan saiznya.

  • peek(): Kaedah T membenarkan mendapatkan semula elemen teratas tanpa mengalihkannya.

  • Selain itu, isEmpty(): kaedah boolean menyemak sama ada tindanan kosong, manakala saiz(): nombor mengembalikan bilangan elemen yang ada dalam tindanan pada masa ini.

Contoh

import java.util.ArrayList;
import java.util.EmptyStackException;
import java.util.List;

public class Stack<T> {
   private List<T> stack;

   public Stack() {
      stack = new ArrayList<>();
   }

   public void push(T element) {
      stack.add(element);
   }

   public T pop() {
      if (isEmpty()) {
         throw new EmptyStackException();
      }
      return stack.remove(stack.size() - 1);
   }

   public T peek() {
      if (isEmpty()) {
         throw new EmptyStackException();
      }
      return stack.get(stack.size() - 1);
   }

   public boolean isEmpty() {
      return stack.isEmpty();
   }

   public int size() {
      return stack.size();
   }

   public void clear() {
      stack.clear();
   }

   public static void main(String[] args) {
      Stack<Integer> stack = new Stack<>();

      stack.push(1);
      stack.push(2);
      stack.push(3);

      System.out.println("Stack size: " + stack.size());
      System.out.println("Top element: " + stack.peek());

      while (!stack.isEmpty()) {
         System.out.println("Popped element: " + stack.pop());
      }
   }
}
Salin selepas log masuk

Output

Stack size: 3
Top element: 3
Popped element: 3
Popped element: 2
Popped element: 1
Salin selepas log masuk

KESIMPULAN

Ringkasnya, menggunakan tatasusunan dan generik untuk melaksanakan tindanan dalam Java mempunyai kelebihan serba boleh dan keselamatan jenis. Dengan menggabungkan generik, pembangun boleh mencipta kelas generik yang dipanggil "Timbunan" yang boleh memuatkan unsur apa-apa jenis, dengan itu meningkatkan fleksibiliti pelaksanaan. Pendekatan ini memastikan bahawa struktur data tindanan boleh menyesuaikan diri dengan pelbagai senario sambil mengekalkan kekangan jenis yang ketat.

Kelas tindanan menggunakan tatasusunan jenis T[] untuk menyimpan elemen dan pembolehubah integer dipanggil "atas" untuk menjejaki elemen paling atas. Ia menyediakan kaedah asas seperti push, pop, peek, isEmpty, dll. untuk memastikan operasi tindanan yang cekap.

Pembangun boleh memanfaatkan pelaksanaan ini untuk mencipta tindanan tersuai untuk jenis tertentu sambil mendapat manfaat daripada kelebihan keselamatan jenis. Struktur data tindanan yang teguh dan cekap boleh dilaksanakan di Java dengan memanfaatkan tatasusunan dan generik.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dalam bahasa C, tatasusunan pasca-kenaikan dan hadapan-kenaikan Dalam bahasa C, tatasusunan pasca-kenaikan dan hadapan-kenaikan Aug 30, 2023 pm 04:57 PM

Soalan: Gunakan atur cara C untuk menerangkan konsep pasca-kenaikan dan pra-kenaikan tatasusunan. Operator Penambahan Penyelesaian (++) - Terdapat dua jenis pengendali kenaikan yang digunakan untuk meningkatkan nilai pembolehubah sebanyak 1 - pra-kenaikan dan selepas kenaikan. Dalam kenaikan sedia ada, pengendali kenaikan diletakkan sebelum operan, dan nilai dinaikkan dahulu dan kemudian operasi dilakukan. cth:z=++a;a=a+1z=a Operator kenaikan diletakkan selepas operan dalam operasi pasca kenaikan, dan nilai akan meningkat selepas operasi selesai. cth:z=a++;z=aa=a+1 Mari kita pertimbangkan contoh untuk mengakses elemen tertentu dalam lokasi ingatan dengan menggunakan pra-kenaikan dan pasca-kenaikan. Isytiharkan tatasusunan saiz 5 dan laksanakan permulaan masa kompilasi. Selepas itu cuba berikan nilai pra-kenaikan kepada pembolehubah 'a'. a=++arr[1]

Operasi asas dan penggunaan tatasusunan dalam PHP Operasi asas dan penggunaan tatasusunan dalam PHP Jun 28, 2023 pm 08:02 PM

Operasi asas dan penggunaan tatasusunan dalam PHP 1. Gambaran Keseluruhan Array ialah jenis data yang sangat penting dalam PHP Ia boleh digunakan untuk menyimpan berbilang nilai, dan nilai ini boleh diakses melalui indeks atau kunci. Tatasusunan mempunyai operasi yang kaya dan kaedah penggunaan dalam PHP Artikel ini akan memperkenalkan secara terperinci operasi asas dan kaedah penggunaan tatasusunan dalam PHP. 2. Buat tatasusunan Dalam PHP, anda boleh mencipta tatasusunan dalam dua cara: tatasusunan boleh dikira dan tatasusunan bersekutu. Mencipta Tatasusunan Boleh Dibilang Tatasusunan boleh dikira ialah tatasusunan yang disusun mengikut tertib dan diindeks secara berangka

Di Jawa, bagaimana untuk menambah elemen baharu pada tatasusunan? Di Jawa, bagaimana untuk menambah elemen baharu pada tatasusunan? Jan 03, 2024 pm 03:30 PM

Menambah elemen baharu pada tatasusunan ialah operasi biasa di Jawa dan boleh dicapai menggunakan pelbagai kaedah. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk menambah elemen pada tatasusunan dan memberikan contoh kod yang sepadan. 1. Cara biasa untuk menggunakan tatasusunan baharu ialah mencipta tatasusunan baharu, menyalin elemen tatasusunan asal ke tatasusunan baharu dan menambah elemen baharu pada penghujung tatasusunan baharu. Langkah-langkah khusus adalah seperti berikut: Buat tatasusunan baharu yang saiznya 1 lebih besar daripada tatasusunan asal. Ini kerana elemen baharu sedang ditambah. Salin elemen tatasusunan asal ke tatasusunan baharu. Tambahkan pada penghujung tatasusunan baharu

Susun semula tatasusunan supaya arr menjadi arr] dan hanya gunakan ruang tambahan O(1), dilaksanakan dalam C++ Susun semula tatasusunan supaya arr menjadi arr] dan hanya gunakan ruang tambahan O(1), dilaksanakan dalam C++ Aug 28, 2023 am 11:53 AM

Kami mendapat tatasusunan jenis integer positif, katakan, arr[] mana-mana saiz tertentu, supaya nilai elemen dalam tatasusunan hendaklah lebih besar daripada 0 tetapi kurang daripada saiz tatasusunan. Tugasnya adalah untuk menyusun semula tatasusunan hanya dengan menukar arr[i] kepada arr[arr[i]] dalam ruang O(1) yang diberikan dan mencetak hasil akhir. Mari lihat pelbagai senario input dan output untuk situasi ini − Input − intarr[] = {032154} Output − Tatasusunan sebelum susunan: 032154 Susun semula tatasusunan supaya arr[i] menjadi arr[arr[i]], Dan mempunyai O( 1) ruang tambahan: 012345 Penjelasan − Kami diberikan tatasusunan integer bersaiz 6, dan semua elemen dalam tatasusunan mempunyai nilai kurang daripada 6. Sekarang kita akan susun semula

Timbunan dan Baris Gilir dalam C++ Timbunan dan Baris Gilir dalam C++ Aug 22, 2023 am 11:00 AM

Pengenalan kepada tindanan dan baris gilir dalam C++ Tindanan dan baris gilir adalah struktur data yang biasa digunakan dalam C++, dan ia digunakan secara meluas dalam atur cara. Artikel ini akan memperkenalkan konsep, penggunaan dan senario aplikasi tindanan dan baris gilir secara terperinci. 1. Konsep Stack Stack (Stack) ialah struktur data linear, yang mempunyai ciri-ciri "masuk pertama, keluar terakhir". Dalam tindanan, data yang ditolak ke dalam tindanan adalah lebih dekat dengan bahagian bawah tindanan; Operasi utama timbunan ialah tolak dan pop. Menolak adalah untuk menambah data pada timbunan, dan muncul

Bagaimana untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik? Bagaimana untuk melaksanakan tindanan dalam Java menggunakan tatasusunan dan generik? Sep 05, 2023 pm 09:25 PM

Java melaksanakan timbunan dengan menggunakan tatasusunan dan generik. Ini mewujudkan struktur data yang serba boleh dan boleh diguna semula yang beroperasi pada prinsip lepas masuk dahulu (LIFO). Mengikut prinsip ini, elemen ditambah dan dikeluarkan dari atas. Dengan menggunakan tatasusunan sebagai asas, ia memastikan peruntukan dan akses memori yang cekap. Selain itu, dengan menggabungkan generik, timbunan dapat menampung unsur-unsur pelbagai jenis, dengan itu meningkatkan kepelbagaiannya. Pelaksanaannya melibatkan definisi kelas Stack yang mengandungi parameter jenis generik. Ia termasuk kaedah asas seperti push(), pop(), peek() dan isEmpty(). Pengendalian kes tepi, seperti limpahan tindanan dan aliran bawah, juga penting untuk memastikan kefungsian yang lancar. Pelaksanaan ini membolehkan pembangun mencipta program yang menampung

Tatasusunan dalam C/C++? Tatasusunan dalam C/C++? Sep 20, 2023 pm 08:25 PM

Tatasusunan ialah koleksi berurutan unsur-unsur dari jenis yang sama. Tatasusunan digunakan untuk menyimpan koleksi data, tetapi selalunya lebih berguna untuk memikirkan tatasusunan sebagai koleksi pembolehubah daripada jenis yang sama. Daripada mengisytiharkan pembolehubah tunggal seperti nombor0, nombor1, ... dan nombor99, anda boleh mengisytiharkan pembolehubah tatasusunan (cth. nombor) dan mewakilinya menggunakan nombor[0], nombor[1] dan ..., nombor[99] setiap pembolehubah. Elemen tertentu dalam tatasusunan diakses melalui pengindeksan. Semua tatasusunan terdiri daripada lokasi memori bersebelahan. Alamat terendah sepadan dengan elemen pertama, dan alamat tertinggi sepadan dengan elemen terakhir. Mengisytiharkan TatasusunanMengisytiharkan tatasusunan memerlukan menentukan jenis elemen dan bilangan elemen yang diperlukan. Tatasusunan adalah seperti berikut -ty

Bagaimanakah kita boleh melaksanakan tindanan menggunakan baris gilir dalam Java? Bagaimanakah kita boleh melaksanakan tindanan menggunakan baris gilir dalam Java? Aug 25, 2023 pm 05:05 PM

Tindanan ialah subkelas kelas Vektor dan mewakili timbunan objek yang masuk dahulu (LIFO) terakhir. Elemen terakhir yang ditambahkan pada bahagian atas tindanan (Masuk) boleh menjadi elemen pertama yang dialih keluar daripada tindanan (Keluar). Kelas Baris Gilir memanjangkan antara muka Koleksi dan menyokong operasi sisipan dan pemadaman menggunakan masuk dahulu keluar dahulu (FIFO). Kita juga boleh menggunakan baris gilir untuk melaksanakan tindanan dalam program berikut. Contoh importjava.util.*;publicclassStackFromQueueTest{ Queuequeue=newLinkedList();

See all articles