1. ArrayList
kelas
Hari ini kita akan meneroka ArrayList
kelas. Ini adalah yang pertama daripada beberapa kelas yang dikenali sebagai koleksi . Di Java, koleksi adalah topik yang luas dan berguna sehinggakan keseluruhan pencarian CodeGym ditumpukan kepada mereka.
Untuk memahami sepenuhnya cara koleksi disusun dan semua nuansanya, anda perlu terlebih dahulu mempelajari OOP, antara muka, warisan, asas multithreading dan banyak lagi.
Jadi hari ini kita hanya akan berkenalan dengan jenis koleksi yang paling mudah. Tetapi pada tahap yang cukup mendalam supaya anda memahami cara menggunakannya dan cara ia berfungsi. Sekarang, temui ArrayList
koleksi itu .
Cerita belakang
Saya akan mulakan dengan sedikit latar belakang. Pengaturcara benar-benar tidak menyukai satu aspek tatasusunan: hakikat bahawa saiznya tidak boleh diubah. Bagaimana jika anda perlu menyimpan tiga lagi elemen dalam tatasusunan, tetapi terdapat hanya satu sel kosong?
Satu-satunya penyelesaian kepada had ruang tatasusunan adalah untuk mencipta tatasusunan yang sangat besar untuk menampung semua elemen yang anda mungkin perlu simpan. Tetapi ini biasanya membazirkan ingatan. Jika tatasusunan biasanya mengandungi dua atau tiga elemen tetapi terdapat kemungkinan kecil bahawa ia perlu menyimpan 100 daripadanya, maka adalah perlu untuk mencipta tatasusunan dengan kapasiti untuk menyimpan 100.
Jadi apa yang dibuat oleh pengaturcara? Mereka menulis ArrayList
kelas, yang melakukan kerja yang sama seperti Array
kelas, tetapi boleh diubah saiz.
Kelas ArrayList
Nama kelas ArrayList
terbentuk daripada dua perkataan: Array + List. Array
ialah tatasusunan dan List
merupakan senarai.
Setiap ArrayList
objek mengandungi susunan elemen biasa. Apabila anda membaca elemen daripada ArrayList
, objek mendapatkannya daripada tatasusunan dalamannya. Apabila anda menulis elemen, ia menulisnya ke tatasusunan dalaman.
Kelas ArrayList tidak mempunyai semua kelemahan yang ada pada tatasusunan. Ia tahu bagaimana untuk:
- Simpan elemen jenis tertentu
- Ubah saiz senarai secara dinamik
- Tambahkan elemen pada penghujung senarai
- Sisipkan elemen pada permulaan atau tengah senarai
- Alih keluar elemen dari mana-mana dalam senarai
Untuk butiran lanjut, lihat di bawah:
2. Mencipta ArrayList
objek
Untuk membuat ArrayList
objek, anda perlu menulis kod seperti ini:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Di manakah ArrayList
jenis/kelas koleksi, TypeParameter
ialah jenis elemen yang disimpan dalam ArrayList
koleksi, dan name
merupakan nama pembolehubah ArrayList<TypeParameter>
.
Pembolehubah name
mempunyai jenis generik. Ia terdiri daripada dua jenis: jenis koleksi ditunjukkan dahulu, dan kemudian kurungan sudut digunakan untuk menunjukkan jenis elemen yang disimpan dalam koleksi.
Contoh:
Kod | Penerangan |
---|---|
|
Senarai integer |
|
Senarai rentetan |
|
Senarai nombor nyata |
Tidak seperti tatasusunan, koleksi tidak boleh menyimpan jenis primitif, hanya jenis rujukan . Jadi jika anda memerlukan koleksi int
s, gunakan Integer
kelas pembalut sebagai gantinya.
3. Operasi denganArrayList
Pada mulanya, panjang senarai yang baru dibuat adalah sifar, kerana ia mengandungi 0 elemen. Jika anda menambah satu elemen pada senarai, panjangnya meningkat sebanyak 1. Jika anda mengalih keluar elemen yang ditambah, panjangnya berkurangan kembali kepada sifar.
Jadual berikut boleh mengajar anda lebih lanjut tentang kaedah kelas ArrayList
:
Kaedah | Penerangan |
---|---|
|
Menambah elemen yang diluluskan pada senarai |
|
Menambah elemen ke lokasi tertentu dalam senarai. |
|
Mengembalikan elemen yang indeksnyaindex |
|
Berikan value kepada elemen yang indeksnyaindex |
|
Mengalih keluar elemen yang indeksnya ialah index . Mengembalikan elemen yang dialih keluar. |
|
Mengalih keluar elemen yang anda hantar ke kaedah. Jika terdapat lebih daripada satu elemen sedemikian, yang pertama akan dialih keluar. |
|
Membersihkan senarai, iaitu mengalih keluar semua elemen daripada senarai. |
|
Menyemak sama ada senarai mengandungi value . |
|
Menyemak sama ada senarai itu kosong atau tidak. Dengan kata lain, sama ada panjang senarai adalah sifar. |
|
Mengembalikan saiz senarai, iaitu bilangan elemen dalam senarai. |
|
Mengembalikan tatasusunan yang mengandungi unsur-unsur senarai. Anda perlu menghantar tatasusunan kepada kaedah. |
Kaedah ini membolehkan anda melakukan hampir apa sahaja yang anda mahukan dengan senarai: menukar elemen, menambah elemen dan mengalih keluar elemen. Anda boleh mengosongkan senarai dengan satu arahan, atau malah menukar senarai kepada tatasusunan.
4. Perbandingan ArrayList
danArray
Saya tidak fikir kita boleh mengelak daripada membandingkan ArrayList
dan array.
Terdapat hanya 4 tindakan yang boleh anda lakukan dengan tatasusunan:
- Buat tatasusunan
- Dapatkan elemen mengikut indeks
- Tetapkan elemen mengikut indeks
- Dapatkan panjang tatasusunan
Berikut ialah operasi ini kerana ia digunakan pada tatasusunan dan ArrayList
:
Susunan | ArrayList |
---|---|
|
|
|
|
|
|
|
|
Mari kita bandingkan cara sesuatu ArrayList
berfungsi berbanding cara tatasusunan berfungsi. Sebagai contoh, mari kita laksanakan tugas ini: "baca 10 rentetan dari papan kekunci dan paparkannya pada skrin dalam susunan terbalik"
Menggunakan Array | Menggunakan ArrayList |
---|---|
|
|
Analoginya jelas. Segala-galanya entah bagaimana lebih pendek dan lebih jelas untuk tatasusunan. Tetapi ArrayList
tidak sukar juga: untuk mendapatkan elemen, kami menggunakan get()
kaedah; untuk menukar elemen, set()
kaedah; untuk mendapatkan panjang senarai, size()
kaedah.
Jadi mengapa pengaturcara menggunakan ArrayList
kelas?
Intinya, sudah tentu, adalah semua kaedah lain yang tidak ada pada tatasusunan biasa:
- Tambahkan elemen pada senarai
- Tambahkan elemen pada bahagian tengah senarai
- Cari elemen dalam senarai
- Mengalih keluar elemen daripada senarai
GO TO FULL VERSION