Rumah > Java > javaTutorial > teks badan

Kerja dalaman ArrayList di Jawa

WBOY
Lepaskan: 2023-09-16 16:05:08
ke hadapan
1400 orang telah melayarinya

Kerja dalaman ArrayList di Jawa

ArrayList ialah kelas dalam Rangka Kerja Koleksi Java yang melaksanakan antara muka Senarai. Ia ialah struktur linear yang menyimpan dan mengakses setiap elemen secara berurutan, ini kerana ia secara dalaman menggunakan tatasusunan dinamik untuk menyimpan elemennya. Seperti tatasusunan, ia juga membenarkan menyimpan elemen pendua. Tatasusunan dinamik di sini merujuk kepada tatasusunan yang boleh berkembang dan mengecut mengikut keperluan. Dalam artikel ini, kami akan meneroka kerja dalaman ArrayList untuk menunjukkan cara ia menyimpan elemennya dan mengubah saiz dirinya semasa operasi.

Bagaimanakah ArrayList berfungsi secara dalaman di Jawa?

Kebanyakan daripada kita tahu bahawa tatasusunan standard mempunyai panjang tetap. Sebaik sahaja tatasusunan diisytiharkan dan dimulakan, ia tidak boleh berkembang atau mengecut, yang bermaksud kita tidak boleh menambah lebih banyak elemen selepas menentukan saiznya. Walau bagaimanapun, dalam beberapa kes sudut, pembangun mungkin tidak mengetahui saiz tatasusunan yang diperlukan sehingga masa jalan. Dalam kes ini, ArrayList ialah alternatif yang lebih baik kepada tatasusunan, yang boleh meningkatkan atau mengurangkan bilangan elemen secara dinamik.

Pembina ArrayList

Untuk menggunakan ArrayList dalam program kami, pertama sekali kami perlu mencipta contoh kelas ArrayList. Untuk tujuan ini, Java menyediakan tiga pembina berbeza yang disebutkan di bawah:

  • ArrayList(): Ia akan mencipta ArrayList kosong.

  • ArrayList(intcapacityInitial): Dalam pembina ini, kita boleh melepasi kapasiti awal bilangan elemen yang ArrayList boleh tahan. Sebaik sahaja bilangan elemen mencapai kapasiti awal, kapasiti ditingkatkan secara automatik.

  • ArrayList(Collection collectionName): Kami juga boleh menggunakan pembina ini untuk mencipta ArrayList daripada koleksi lain.

Mengapa ArrayList dinamik?

Apabila kami menambah elemen pada ArrayList menggunakan kaedah terbina dalam "add()", ia mula-mula menyemak sama ada terdapat ruang yang mencukupi dalam tatasusunan untuk menyimpan elemen baharu. Jika ada, ia memberikan elemen baharu kepada indeks yang tersedia seterusnya dalam tatasusunan. Jika tidak ada ruang yang mencukupi untuk elemen baharu, ia mencipta tatasusunan baharu dengan kapasiti yang lebih besar, biasanya 1.5 kali ganda kapasiti semasa, kemudian menyalin semua elemen sedia ada daripada tatasusunan lama kepada tatasusunan baharu dan menetapkan elemen baharu kepada tatasusunan seterusnya. indeks elemen yang tersedia ke dalam tatasusunan yang baru dibuat.

Apabila kami mengalih keluar elemen daripada ArrayList menggunakan kaedah terbina dalam "move()", ia mengalihkan semua elemen selepas indeks elemen satu yang dialih keluar ke kiri. Walau bagaimanapun, ia tidak mengecilkan tatasusunan serta-merta, tetapi ia mungkin mengecut kemudian jika saiznya terlalu kecil berbanding dengan kapasiti.

Mari kita bincangkan beberapa contoh untuk lebih memahami perkara yang dibincangkan di atas.

Contoh 1

Contoh berikut menunjukkan cara mencipta dan mencetak elemen ArrayList dalam Java.

import java.util.*;
public class Example1 {
   public static void main(String[] args) {
	   // Creating arraylist 
      ArrayList<Integer> araylist = new ArrayList<Integer>();
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// Adding elements in arraylist<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(8);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(5);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(2);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(9);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(2);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(4);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(9);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(7);
<span style="font-size: 11.4844px;">      </span>System.out.println("List of elements: " + araylist);
   }
}
Salin selepas log masuk

OUTPUT

List of elements: [8, 5, 2, 9, 2, 4, 9, 7]
Salin selepas log masuk

Contoh 2

Dalam contoh berikut, kami akan mencipta ArrayList dengan kapasiti awal dan cuba menambah elemen melebihi kapasiti yang ditentukan untuk menunjukkan bahawa ArrayList boleh berkembang secara dinamik.

import java.util.*;
public class Example2 {
   public static void main(String[] args) {
      // Creating arraylist with initial capacity of 5
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>ArrayList<Integer> araylist = new ArrayList<Integer>(5);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// Adding elements in arraylist
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(80); // 1
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(15); // 2
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(23); // 3
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(9); // 4
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(12); // 5
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// adding more elements 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(14);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(91);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>araylist.add(74);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>System.out.println("List of elements: " + araylist);
   }
}
Salin selepas log masuk

OUTPUT

List of elements: [80, 15, 23, 9, 12, 14, 91, 74]
Salin selepas log masuk

Contoh 3

Dalam contoh ini, kami akan mencipta ArrayList daripada HashSet untuk menunjukkan bahawa elemen set boleh ditambah pada ArrayList. Secara dalaman, ia mula-mula menyemak saiz koleksi yang diluluskan dan kemudian menyimpan elemen dalam ArrayList yang diberikan menggunakan kaedah "Arrays.copyOf()".

import java.util.*;
public class Example3 {
   public static void main(String[] args) {
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// Creating a Set 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>HashSet<Integer> setH = new HashSet<>();
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// Adding elements in the Set
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(80); 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(15); 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(23); 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(9); 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(12); 
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(14);<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(91);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>setH.add(74);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// Passing the Set to the ArrayList
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>ArrayList<Integer> araylist = new ArrayList<>(setH);
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>// printing the result
<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);">      </span>System.out.println("List of elements: " + araylist);
   }
}
Salin selepas log masuk

OUTPUT

List of elements: [80, 23, 9, 74, 91, 12, 14, 15]
Salin selepas log masuk

KESIMPULAN

Kami memulakan artikel ini dengan mentakrifkan ArrayList dan dalam bahagian seterusnya, kami membincangkan kerja dalamannya. ArrayList ialah tatasusunan boleh ubah saiz dengan kapasiti lalai 10 yang boleh ditingkatkan apabila kami menambah lebih banyak elemen padanya. Kami juga boleh menentukan kapasiti awal dalam pembina ArrayList apabila menciptanya.

Atas ialah kandungan terperinci Kerja dalaman ArrayList di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan