Kedua-dua Array dan ArrayList adalah struktur data berasaskan indeks yang sering digunakan dalam program Java. Secara konseptual, ArrayList secara dalaman disokong oleh tatasusunan, bagaimanapun, pemahaman perbezaan antara kedua adalah kunci untuk menjadi pemaju Java yang hebat. Ia agak langkah asas untuk bermula, terutamanya pemula yang baru sahaja mula mengekod. Walaupun kedua-duanya digunakan untuk menyimpan unsur-unsur di Jawa, yang boleh menjadi primitif atau objek, mereka mempunyai perbezaan yang saksama dari segi fungsi dan prestasi. Perbezaan utama antara kedua ialah Array adalah statik sedangkan ArrayList adalah sifat dinamik. Artikel ini membandingkan kedua-dua aspek yang berbeza supaya anda dapat memilih satu dari yang lain.
Salah satu perbezaan utama dan ketara antara kedua-dua struktur data ialah Array bersifat statik yang bermaksud ia adalah jenis data tetap tetap manakala ArrayList adalah sifat dinamik yang bermaksud ia adalah struktur data panjang yang berubah-ubah. Dalam istilah teknikal, panjang Array tidak boleh diubah atau dimodifikasi sebaik sahaja objek Array dibuat. Ia mengandungi koleksi urutan unsur-unsur jenis data yang sama. Array di Jawa berfungsi dengan berbeza daripada yang berfungsi dalam C / C ++. ArrayList, sebaliknya, boleh mengubah saiznya sendiri dan tatasusunan boleh berkembang sebagaimana diperlukan. Oleh kerana ia adalah struktur data dinamik, unsur-unsur boleh ditambah dan dikeluarkan dari senarai.
Anda tidak boleh membuat Array of Generic kelas antarmuka di Java jadi array dan generics tidak pergi tangan dalam tangan menjadikannya mustahil untuk membuat Generic Array untuk satu alasan dasar yang array adalah covariant sementara generics tidak invariant. Walaupun Array adalah struktur data tetap panjang, ia mengandungi objek kelas atau primitif sama jenis data tertentu. Jadi, jika anda cuba menyimpan jenis data yang berlainan selain daripada yang ditentukan semasa membuat objek Array, ia hanya membuang "ArrayStoreException". Sebaliknya, ArrayList menyokong Generik untuk memastikan keselamatan jenis.
Jenis data primitif seperti int, double, panjang, dan char tidak dibenarkan dalam ArrayList. Ia agak memegang objek dan primitif tidak dianggap objek di Jawa. Array, sebaliknya, dapat memegang primitif dan juga objek di Jawa kerana ia merupakan salah satu struktur data yang paling efisien di Jawa untuk menyimpan objek. Ia adalah jenis data agregat yang direka untuk memegang objek yang boleh sama dengan jenis yang sama atau berbeza.
Untuk mendapatkan panjang Array, kod tersebut perlu mengakses atribut panjang kerana seseorang mesti tahu panjang untuk melaksanakan operasi pada Array. Walaupun ArrayList menggunakan saiz () kaedah untuk menentukan saiz ArrayList, ia agak berbeza daripada menentukan panjang Array. Atribut kaedah saiz () menentukan bilangan elemen dalam ArrayList, yang seterusnya adalah kapasiti ArrayList.
Sebagai contoh:
kelas awam ArrayLengthTest
public static void main (String [] args)
ArrayList arrList = ArrayList baru ();
String [] items = "One", "Two", "Three";
untuk (str str: item)
arrList.add (str);
int size = items.size ();
System.out.println (saiz);
Array adalah komponen pengaturcaraan asli di Java yang dicipta secara dinamik dan mereka menggunakan operator tugasan untuk memegang elemen, manakala menggunakan ArrayList tambah () atribut untuk memasukkan elemen. ArrayList adalah kelas dari rangka pengumpulan di Jawa yang menggunakan satu set kaedah tertentu untuk mengakses dan mengubahsuai unsur-unsur. Saiz ArrayList boleh ditingkatkan atau menurun secara dinamik. Unsur-unsur dalam array disimpan dalam lokasi memori bersebelahan dan saiznya kekal statik di seluruh.
Walaupun kedua-dua struktur data memberikan jenis prestasi yang sama seperti ArrayList yang disokong oleh Arrays, satu mempunyai sedikit kelebihan berbanding yang lain dari segi masa CPU dan penggunaan memori. Katakan, jika anda tahu saiz array, anda mungkin akan pergi dengan ArrayList. Walau bagaimanapun, lelaran atas Array sedikit lebih cepat daripada melewati ArrayList. Sekiranya program itu melibatkan sebilangan besar primitif, array akan melakukan dengan lebih baik daripada ArrayList, dari segi masa dan memori. Array adalah bahasa pengaturcaraan peringkat rendah yang boleh digunakan dalam pelaksanaan pengumpulan. Walau bagaimanapun, prestasi mungkin berbeza-beza bergantung kepada operasi yang anda lakukan.
Array | ArrayList |
Array ialah struktur data tetap panjang yang panjangnya tidak boleh diubah apabila objek array dibuat. | ArrayList adalah sifat dinamik yang bermakna ia dapat mengubah saiz dirinya untuk berkembang apabila diperlukan. |
Saiz array tetap statik sepanjang program. | Saiz ArrayList boleh berkembang secara dinamik bergantung kepada beban dan kapasiti. |
Ia menggunakan pengendali tugasan untuk menyimpan elemen. | Ia menggunakan atribut add () untuk memasukkan elemen. |
Ia boleh mengandungi primitif dan objek jenis data yang sama atau berbeza. | Primitif tidak dibenarkan dalam ArrayList. Ia hanya boleh mengandungi jenis objek. |
Arrays dan Generics tidak bersatu. | Generik dibenarkan dalam ArrayList. |
Array boleh menjadi pelbagai dimensi. | ArrayList adalah dimensi tunggal. |
Ia adalah komponen pengaturcaraan asli di mana unsur-unsur disimpan dalam lokasi memori berdekatan. | Ia kelas dari kerangka koleksi Jawa di mana objek tidak pernah disimpan di lokasi yang berdekatan. |
Pembolehubah panjang digunakan untuk menentukan panjang Array. | Kaedah saiz () digunakan untuk menentukan saiz ArrayList. |
Mengambil memori kurang daripada ArrayList untuk menyimpan unsur atau objek yang ditentukan. | Mengambil lebih banyak memori daripada Array untuk menyimpan objek. |
Mengatur lebih banyak array adalah lebih cepat daripada melewati ArrayList. | Mengatur lebih ArrayList jauh lebih perlahan dari segi prestasi. |
Walaupun sesetengah mungkin berfikir bahawa melaksanakan tatasusunan dalam program boleh mendapatkan hasil lebih cepat daripada melakukan perkara yang sama dengan ArrayLists atas sebab mudah bahawa tatasusunan adalah struktur data peringkat rendah, prestasi mungkin berbeza berdasarkan operasi yang anda lakukan. Nah, panjang Array adalah tetap, sedangkan saiz ArrayList boleh ditingkatkan atau menurun secara dinamik, jadi ArrayList mempunyai sedikit kelebihan atas Array dari segi fungsi. Bagaimanapun, walaupun perbezaannya, mereka juga berkongsi beberapa persamaan. Kedua-duanya adalah struktur data berasaskan indeks di Jawa yang membolehkan anda menyimpan objek dan kedua-duanya membenarkan nilai nol serta pendua. Nah, jika anda tahu saiz objek terlebih dahulu, anda harus pergi dengan tatasusunan, dan jika anda tidak pasti tentang saiz, pergi dengan ArrayList.