Rumah  >  Artikel  >  Java  >  Pengenalan kepada teknologi kontena dalam bahasa Java

Pengenalan kepada teknologi kontena dalam bahasa Java

王林
王林asal
2023-06-10 17:54:081151semak imbas

Dalam bahasa Java, teknologi kontena adalah salah satu konsep yang sangat penting Ia merujuk kepada struktur yang boleh menyimpan dan mengurus sekumpulan objek. Teknologi bekas dalam Java melibatkan berbilang kelas dan antara muka, termasuk bekas biasa seperti Senarai, Set dan Peta. Struktur data ini menyediakan kaedah dan alatan yang mudah yang membolehkan pengaturcara memproses data dengan lebih cekap. Artikel ini akan memperkenalkan teknologi kontena dalam bahasa Java, termasuk jenis kontena, kelas kontena biasa, operasi kontena dan kaedah pelaksanaan kontena.

1. Jenis bekas

Bekas di Jawa boleh dibahagikan kepada dua jenis: Koleksi dan Peta.

  1. Koleksi

Koleksi ialah koleksi objek, yang biasanya mempunyai jenis kelas Koleksi Biasa ialah:

  • Senarai: Ia ialah koleksi tersusun di mana unsur boleh diulang. Elemen nol dibenarkan. Kelas pelaksanaan biasa termasuk ArrayList, LinkedList, dsb.
  • Set: Ia ialah set yang tidak membenarkan unsur pendua dan boleh membenarkan unsur nol. Kelas pelaksanaan biasa termasuk HashSet, LinkedHashSet, dsb.
  • Baris gilir: Ia ialah Senarai dan Set khas, yang hanya membenarkan elemen dimasukkan pada satu hujung bekas dan dipadamkan pada hujung yang lain, jadi ia adalah baris gilir. Kelas pelaksanaan biasa termasuk LinkedList, PriorityQueue, dsb.
  • Timbunan: Ia adalah struktur LIFO (Masuk Dahulu Terakhir) yang boleh memasukkan dan memadam elemen pada satu hujung bekas. Kelas pelaksanaan yang biasa digunakan termasuk Stack.
  1. Peta

Peta ialah set set pemetaan kunci dan nilai, yang membolehkan kita mencari nilai mengikut kekunci. Kekunci dalam Peta tidak tertib dan tidak boleh diulang, tetapi nilainya boleh diulang. Kelas pelaksanaan biasa termasuk HashMap, Hashtable, LinkedHashMap, dsb.

2. Kelas bekas biasa

  1. ArrayList

ArrayList ialah tatasusunan dinamik, tersusun, yang boleh mengembangkan kapasitinya secara automatik mengikut keperluan. Ia mewarisi kelas AbstractList dan melaksanakan antara muka Senarai. Lapisan asasnya ialah tatasusunan dan elemen boleh diakses menggunakan subskrip. ArrayList membenarkan nilai nol dan ia boleh diakses secara rawak (O(1)). Walau bagaimanapun, elemen perlu dialihkan semasa operasi pemasukan dan pemadaman, jadi prestasi adalah lemah.

  1. LinkedList

LinkedList ialah senarai terpaut, tersusun dan ia boleh mengembangkan kapasitinya secara automatik mengikut keperluan. Ia mewarisi kelas AbstractSequentialList dan melaksanakan antara muka Senarai, Deque, dan Baris Gilir. LinkedList tidak menyokong akses rawak, tetapi mempunyai prestasi yang lebih baik semasa operasi pemasukan dan pemadaman. Penyegerakan tidak disokong dan penyegerakan manual diperlukan.

  1. HashSet

HashSet ialah jadual cincang yang tidak membenarkan elemen pendua disimpan. Apabila menyimpan elemen, anda perlu mencincang elemen terlebih dahulu ke dalam nilai jenis int dan kemudian menyimpan nilai dalam tatasusunan. Jika perlanggaran cincang berlaku, senarai terpaut disimpan di lokasi yang sama. HashSet melaksanakan antara muka Set, yang tidak menjamin susunan elemen.

  1. LinkedHashSet

LinkedHashSet mewarisi HashSet, yang mengekalkan susunan unsur-unsur koleksi dimasukkan, iaitu, ia mengekalkan susunan unsur-unsur yang dimasukkan .

  1. HashMap

HashMap ialah jadual cincang, yang menyimpan pasangan nilai kunci. Apabila kita memasukkan elemen, ia mula-mula mencincang kunci elemen ke dalam nilai jenis int, dan kemudian menggunakan nilai ini untuk menentukan tempat pasangan nilai kunci perlu diletakkan dalam tatasusunan. Jika perlanggaran cincang berlaku, senarai terpaut disimpan di lokasi yang sama. HashMap membenarkan kekunci nol dan nilai nol.

  1. LinkedHashMap

LinkedHashMap mewarisi HashMap, yang mengekalkan senarai terpaut dua kali dan mengekalkan susunan elemen koleksi dimasukkan.

3. Operasi bekas

Operasi yang biasa digunakan pada contoh kontena ialah:

  1. Tambah

Gunakan kaedah tambah() untuk tambah elemen pada hujung bekas. Untuk Senarai, anda boleh menggunakan kaedah add(int index, Object element) untuk menambah elemen pada kedudukan yang ditentukan.

  1. Padam

Gunakan kaedah remove() untuk memadamkan elemen dalam bekas. Untuk Senarai, anda boleh menggunakan kaedah remove(int index) untuk memadamkan elemen pada kedudukan yang ditentukan.

  1. Pertanyaan

Gunakan kaedah get() untuk mendapatkan elemen dalam bekas. Untuk Senarai, anda boleh menggunakan kaedah get(int index) untuk mendapatkan elemen pada kedudukan yang ditentukan.

  1. Sisipkan

Gunakan kaedah add(int index, Object element) untuk memasukkan elemen ke kedudukan yang ditentukan.

  1. Tentukan sama ada unsur itu wujud

Gunakan kaedah contains() untuk menentukan sama ada unsur itu wujud dalam bekas.

4. Cara melaksanakan bekas

Bekas Java dilaksanakan dalam cara berorientasikan objek Struktur data yang sepadan termasuk senarai, jadual cincang, pepohon, dsb. Antaranya, jadual dan pokok cincang adalah lebih cekap daripada senarai.

Dalam Java5 dan versi yang lebih baru, mekanisme generik dan mekanisme tinju dan unboxing automatik diperkenalkan. Dengan cara ini, kita boleh menggunakan bekas secara langsung tanpa memerlukan tuangan.

Ringkasan:

Teknologi kontena di Java boleh meningkatkan kecekapan dan fleksibiliti pengaturcaraan. Kita boleh memilih pelaksanaan kontena yang sesuai berdasarkan keperluan sebenar untuk memproses data dengan lebih baik. Walau bagaimanapun, apabila menggunakan bekas, kita perlu memberi perhatian kepada isu keselamatan benang dan memilih kaedah pelaksanaan tertentu secara fleksibel berdasarkan keadaan sebenar.

Atas ialah kandungan terperinci Pengenalan kepada teknologi kontena dalam bahasa Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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