Metode ArrayList
| English | Bahasa Indonesia |
|---|---|
| ArrayList/əˈreɪ lɪst/ | ArrayList |
Penyisipan mengubah indeks setelahnya
- Sebuah ArrayList dimulai
[cat, dog].add(1, "owl")membuat[cat, owl, dog], kemudianremove(0)membuat[owl, dog]. Sekarangget(1)mengembalikan"dog". - Jejak seluruh daftar setelah setiap operasi: penyisipan menggeser elemen-elemen setelahnya ke kanan, sementara penghapusan menggesernya ke kiri. Indeks mengidentifikasi posisi, bukan identitas permanen bagi suatu elemen.
Sebuah list memiliki ukuran dan tipe elemen
- ArrayList menyimpan sekuens referensi yang dapat diubah ukurannya. Impor
java.util.ArrayListdan deklarasikanArrayList<String> names = new ArrayList<String>();; ukuran awalnya sama dengan 0. - Tipe parameter adalah tipe referensi, jadi gunakan
Integeruntuk bilangan bulat alih-alihint.size()menghitung elemen yang disimpan; kapasitas awal adalah ruang yang tersedia untuk pertumbuhan dan tidak menciptakan sebanyak itu elemen.
Lampirkan atau sisipkan di dalam batas kanan
add(x)melampirkan sebuah elemen;add(i, x)menyisipkan sebelum elemen saat ini pada i. Untuk penyisipan, indeks yang valid berjalan dari 0 hingga size inklusif, sehinggaadd(size(), x)juga melampirkan.get(i)membaca elemen yang ada, sehingga indeksnya berjalan dari 0 hingga ukuran dikurangi 1. Daftar kosong tidak memiliki indeks get yang valid;get(size())berada di luar batas meskipun penyisipan di sana diperbolehkan.
Untuk daftar berukuran 2, add(2, value) diperbolehkan tetapi get(2) berada di luar batas.
Sisipan memungkinkan posisi pada ukuran; get memerlukan indeks yang sudah ada yang secara ketat lebih kecil dari ukuran.
Penggantian dan penghapusan menghasilkan hasil yang berbeda
set(i, x)mengganti elemen yang ada dan mengembalikan nilai lama tanpa mengubah ukuran.remove(int i)menghapus elemen pada posisi tersebut, mengembalikannya, dan mengurangi ukuran sebanyak satu.remove(Object value)yang dibebani (overloaded) alih-alih menghapus nilai pertama yang sama dan mengembalikan apakah kecocokan telah dihapus. DalamArrayList<Integer>,remove(1)berarti indeks 1; gunakanremove(Integer.valueOf(1))untuk menghapus nilai 1.
import java.util.ArrayList;
import java.util.Arrays;
public class RemoveChoice {
public static void main(String[] args) {
ArrayList<Integer> byIndex = new ArrayList<>(Arrays.asList(1, 2, 1));
ArrayList<Integer> byValue = new ArrayList<>(Arrays.asList(1, 2, 1));
int removed = byIndex.remove(1);
boolean found = byValue.remove(Integer.valueOf(1));
System.out.println(removed + " " + byIndex);
System.out.println(found + " " + byValue);
}
}
Kedua output tersebut adalah 2 [1, 1] dan true [2, 1]. Setiap daftar kehilangan satu elemen, tetapi elemennya berbeda.
add, get, dan remove
Setelah remove(0), dog berpindah ke indeks 0 dan ukuran turun menjadi 1.
Bagaimana cara mendapatkan jumlah elemen dalam list ArrayList?
ArrayList menggunakan size(); array menggunakan .length.
Untuk ArrayList list dengan setidaknya tiga elemen, bagaimana cara mengakses elemen pada indeks 2?
ArrayList menggunakan get(i), bukan [i].
Setelah a.remove(0) pada {cat, dog}, apa nilai a.get(0)?
remove(0) menghapus cat; dog berpindah ke indeks 0.
Anda dapat mengakses elemen ArrayList dengan kurung siku, seperti list[0].
ArrayList menggunakan metode (get/set), bukan sintaks [].
add(x) dengan satu argumen menambahkan x...
add(x) menambahkan di akhir; add(i, x) menyisipkan pada indeks i.
Dimulai dari [1, 2, 1], remove(1) dipanggil dengan argumen int. Nilai apa yang dikembalikan?
Overload int menghapus indeks 1, yang elemennya adalah 2.
Pilih berdasarkan tipe argumen yang dideklarasikan
- Java memilih overload menggunakan tipe argumen.
int index = 1; list.remove(index);menghapus posisi 1;Integer value = 1; list.remove(value);memilih penghapusan nilai. - Daftar String dapat menghapus
"owl"oleh nilai atau indeks 0 oleh posisi. Tentukan mana yang Anda maksud sebelum melacak pergeseran; menemukan tidak ada nilai yang sama mengembalikan false dan meninggalkan daftar tetap tidak berubah.
Array menggunakan a[i] dan a.length; ArrayList menggunakan get(i) dan size(). Pisahkan batas penyisipan dari batas elemen yang sudah ada, dan jangan berasumsi bahwa argumen berpenampilan bilangan bulat untuk remove selalu berarti nilai yang disimpan.
Periksatu penggantian dan satu kegagalan penghapusan
- Dimulai dari
[owl, dog],set(1, "fox")mengembalikan"dog"dan meninggalkan[owl, fox]dengan ukuran 2.remove("cat")kemudian mengembalikan false dan tidak mengubah apa pun. - Periksa daftar kosong, posisi valid pertama/terakhir, dan nilai yang tidak ada. Bacalah overload dan nilainya serta daftar yang dihasilkan; penggantian, penyisipan, dan penghapusan memiliki kontrak yang berbeda.
ArrayList adalah urutan yang dapat diubah ukurannya yang diakses melalui metode. Sisipkan pada 0 hingga ukuran; baca, ganti, atau hapus posisi yang ada pada 0 hingga ukuran dikurangi 1. remove(int) menghapus posisi; remove(Object) menghapus nilai pertama yang sama jika ditemukan.
After the stated insertion and removal, type the value returned by get(0).
The final list is [owl, dog], with owl at index 0.