Aplikasi praktikal timbunan termasuk pengurusan panggilan fungsi, penilaian ekspresi, dll. Dalam senario ini, kita mungkin perlu mengira bilangan elemen dalam timbunan. Sebagai contoh, apabila menggunakan timbunan untuk pengurusan panggilan fungsi, anda perlu mengira jumlah panggilan fungsi;
kami akan meneroka tiga cara untuk mengira bilangan elemen dalam timbunan:
Gunakan
- Kaedah
-
Stack.size()
Gunakan gelung (kaedah lelaran) -
for
Gunakan kaedah rekursif - Gunakan
Stack.size()
Kaedah pertama untuk mengira bilangan elemen dalam timbunan adalah dengan menggunakan kaedah
. Ia dapat membantu mencari saiz timbunan, yang bersamaan dengan jumlah elemen dalam timbunan.
Stack.size()
Tatabahasa
sintaks berikut boleh digunakan di Java menggunakan kaedah
:
Stack.size()
s1.size();
Parameter
Kaedahtidak menerima sebarang parameter.
Stack.size()
nilai pulangan
mengembalikan jumlah elemen dalam timbunan.
Stack.size()
Contoh
Dalam kod berikut, kami menentukan timbunan "S1". Selepas itu, kami memasukkan 3 bilangan bulat ke dalam timbunan. Apabila kita menggunakan kaedah
dengan timbunan, ia mengembalikan "3" sebagai output, menunjukkan jumlah elemen dalam timbunan.
size()
import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<Integer> s1 = new Stack<>(); // 將元素壓入棧 s1.push(1); s1.push(2); s1.push(3); // 使用size()方法獲取元素?cái)?shù)量 int count = s1.size(); // 打印元素?cái)?shù)量 System.out.println("棧中元素?cái)?shù)量:" + count); } }
Gunakan
<code>棧中元素?cái)?shù)量:3</code>gelung (kaedah lelaran)
for
Sekarang, mari kita lihat cara kedua untuk mengira bilangan elemen dalam timbunan. Dalam kaedah ini, kami akan melengkung melalui setiap elemen timbunan menggunakan
dan mengira jumlah elemen dalam timbunan.
for
Tatabahasa
Jumlah elemen dalam timbunan boleh dikira menggunakan
menggunakan sintaks berikut:
for
for (Integer element : s1) { count++; }
Contoh
Dalam contoh berikut, kami gelung melalui setiap elemen timbunan menggunakan
dan meningkatkan nilai pembolehubah "kiraan" dalam setiap lelaran. Selepas itu, kami mencetak nilai pembolehubah "kiraan", yang merupakan bilangan elemen dalam timbunan.
for
import java.util.Stack; public class StackCountIterative { public static void main(String[] args) { Stack<Integer> s1 = new Stack<>(); // 將元素壓入棧 s1.push(1); s1.push(2); s1.push(3); // 使用迭代計(jì)算元素?cái)?shù)量 int count = 0; for (Integer element : s1) { count++; } // 打印元素?cái)?shù)量 System.out.println("棧中元素?cái)?shù)量:" + count); } }
Gunakan kaedah rekursif
<code>棧中元素?cái)?shù)量:3</code>
Cara ketiga untuk mengira semua elemen timbunan adalah dengan menggunakan rekursi. Dalam pendekatan ini, kami akan secara rekursif melintasi setiap elemen timbunan dan menjejaki jumlah elemen dalam timbunan.
Tatabahasa
semua elemen timbunan boleh dikira menggunakan kaedah rekursif menggunakan sintaks berikut:
Dalam sintaks di atas, kami mengikuti langkah -langkah berikut:
if (s1.isEmpty()) { return 0; } // 移除頂部元素并計(jì)算其余元素 Integer element = s1.pop(); int count = 1 + countElements(s1); // 將元素壓回以恢復(fù)棧 s1.push(element);
- Jika timbunan kosong, kembali "0", menunjukkan bahawa tiada unsur dalam timbunan.
- Keluarkan elemen dalam timbunan kerana kita akan mengira bilangan kejadian elemen semasa dalam langkah seterusnya.
- Buat panggilan rekursif ke timbunan yang dikemas kini, tambahkan nilai hasilnya kepada "1" dan simpan dalam pembolehubah "kiraan". Di sini kita menambah "1" ke elemen yang telah dikeluarkan sebelumnya.
- Seterusnya, tolak "elemen" ke dalam timbunan sekali lagi untuk memastikan keadaan timbunan tidak berubah.
Contoh
Dalam contoh ini, kami menggunakan kaedah rekursif untuk mengira bilangan elemen dalam timbunan.
s1.size();
output
import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<Integer> s1 = new Stack<>(); // 將元素壓入棧 s1.push(1); s1.push(2); s1.push(3); // 使用size()方法獲取元素?cái)?shù)量 int count = s1.size(); // 打印元素?cái)?shù)量 System.out.println("棧中元素?cái)?shù)量:" + count); } }
Kesimpulan
Kami meneroka tiga kaedah untuk mengira jumlah elemen dalam timbunan. Kaedah pertama menggunakan kaedah Stack.size()
, yang mudah dan langsung. Kaedah kedua menggunakan gelung for
untuk mengira elemen timbunan, yang sedikit lebih rumit daripada kaedah pertama. Kaedah ketiga menggunakan rekursi untuk mengira elemen timbunan, yang mungkin lebih rumit untuk pemula.
Jika anda perlu melakukan operasi tertentu pada setiap elemen timbunan semasa mengira elemen timbunan, anda harus menggunakan kaedah kedua.
Atas ialah kandungan terperinci Program Java untuk mengira semua elemen timbunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

DependencyInjection (DI) isadesignpatternwhereBjectsReceivedependencys ke luar, promotingloosecouplingandeasieSierTestthroughconstructor, setter, orfieldInjection.2.springframeworkusesannotationsike@component,@service, dan@autowwithjava yang berasaskan@autowwithjava

Gunakan kelas dalam pakej Java.Time untuk menggantikan kelas lama dan kelas kalendar; 2. Dapatkan tarikh dan masa semasa melalui LocalDate, LocalDateTime dan Tempatan Tempatan; 3. Buat tarikh dan masa tertentu menggunakan kaedah (); 4. Gunakan kaedah tambah/tolak untuk meningkatkan dan mengurangkan masa; 5. Gunakan zoneddatetime dan zonid untuk memproses zon waktu; 6. Format dan parse date string melalui DateTimeFormatter; 7. Gunakan segera untuk bersesuaian dengan jenis tarikh lama apabila perlu; pemprosesan tarikh di java moden harus memberi keutamaan untuk menggunakan java.timeapi, yang memberikan jelas, tidak berubah dan linear

THEJVMenableSjava's "Writeonce, Runanywhere" keupayaanByExecutingByteCodeThroughFourMaincomponents: 1.TheClassloadersubsystemloads, pautan, danInitializes.ClassFilesusingBootstrap, Extension, andapplicationClassloaders, EnsuringseCureAndlazyCon

Chromecanopenlocalfileslikehtmlandpdfsbyusing "openfile" ordraggingthemintothebrowser; ensureTheaddressStartSwithFile: ///; 2.securityRestrictionsblockajax, localStorage, andcross-folderacSonfile:/ealerSoR.

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

NetworkPortsandFireWallSworkTogethertoenableCommunicationWileensuringsecurity.1.networkportsarevirtualendpointsNumbered0-655 35, Withwell-KnownportsLike80 (http), 443 (https), 22 (ssh), dan25 (smtp) identitispecificservices.2.portsoperateovertcp (boleh dipercayai, c
