Dalam Java, kedua-dua List dan ArrayList digunakan secara meluas untuk mencipta koleksi objek. Walau bagaimanapun, terdapat perbezaan yang halus tetapi penting antara keduanya.
Soalan yang dikemukakan bertanya sama ada (1) dan (2) boleh ditukar ganti.
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>();
Jawapannya ialah (1) biasanya lebih diutamakan daripada (2).
Sebab (1) diutamakan adalah kerana prinsip pengekodan kepada antara muka dan enkapsulasi. Senarai ialah antara muka, manakala ArrayList ialah pelaksanaan khusus bagi antara muka itu.
Dengan mengisytiharkan myList sebagai Senarai>, anda boleh menetapkan sebarang pelaksanaan antara muka Senarai (cth. LinkedList, Vektor) kepadanya. Fleksibiliti ini membolehkan anda memilih pelaksanaan yang paling sesuai untuk aplikasi anda pada masa jalan.
Sebaliknya, jika anda mengisytiharkan myList sebagai ArrayList>, anda secara khusus mengikatnya pada pelaksanaan ArrayList. Ini mengehadkan keupayaan anda untuk menukar pelaksanaan kemudian.
Pertimbangkan contoh berikut:
List<Integer> myList = new LinkedList<Integer>();
Pada mulanya, anda boleh bermula dengan pelaksanaan LinkedList bagi Antara muka senarai. Walau bagaimanapun, katakan anda menghadapi kesesakan prestasi di mana pelaksanaan yang lebih cekap, seperti ArrayList, adalah lebih sesuai.
Dalam kes ini, anda boleh menukar LinkedList dengan ArrayList dengan mudah tanpa menjejaskan bahagian lain pangkalan kod. Jika anda telah menggunakan ArrayList
Atas ialah kandungan terperinci Senarai vs. ArrayList dalam Java: Bilakah Anda Harus Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!