Perbezaan antara Array dan ArrayList Perbezaan Antara

Anonim

Apakah Array dan ArrayList?

Kedua 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 adalah 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 manakala ArrayList adalah sifat dinamik. Artikel ini membandingkan kedua-dua aspek yang berbeza supaya anda dapat memilih satu dari yang lain.

Perbezaan antara Array dan Arraylist

  1. Resizable

Salah satu perbezaan utama dan ketara antara kedua-dua struktur data ialah Array bersifat statik yang bermaksud ia adalah jenis data tetap tetap sementara 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 ++. Sebaliknya, ArrayList boleh mengubah saiznya sendiri dan tatasusunan boleh berkembang sebagaimana diperlukan. Oleh kerana struktur data dinamik, unsur-unsur boleh ditambah dan dikeluarkan dari senarai.

  1. Generik

Anda tidak boleh membuat Arrays dari kelas antarmuka Generik dalam Java sehingga array dan generik tidak bergerak dalam tangan menjadikannya mustahil untuk membuat Generic Array untuk satu alasan asas yang array adalah covariant manakala generik adalah invarian. 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.

  1. Primitif

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 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.

  1. Panjang

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. Saiz () kaedah atribut menentukan bilangan unsur dalam ArrayList, yang seterusnya adalah kapasiti ArrayList.

Untuk Contoh :

kelas awam ArrayLengthTest {

public static void main (String [] args) {

ArrayList arrList = new ArrayList ();

String [] items = {"One", "Two", "Three"};

untuk (String str: items) {

arrList. tambah (str);

}

int size = items. saiz (); Sistem

. keluar. cetakan (saiz);

}

}

  1. Pelaksanaan

Array adalah komponen pengaturcaraan asli di Java yang dicipta secara dinamik dan mereka menggunakan operator tugasan untuk memegang elemen, manakala menggunakan ArrayList atribut add () 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 yang berdekatan dan saiznya kekal statik di seluruh.

  1. Prestasi

Walaupun kedua-dua struktur data memberikan jenis prestasi yang sama seperti ArrayList yang disokong oleh Arrays, satu mempunyai sedikit kelebihan berbanding yang lain dalam kebanyakan masa dari 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 ini melibatkan sebilangan besar primitif, array akan melakukan dengan lebih baik daripada ArrayList, dari segi masa dan ingatan. 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 Vs. Arraylist

Array ArrayList
Array ialah struktur data tetap panjang yang panjangnya tidak boleh diubah setelah objek array dibuat. ArrayList adalah sifat yang dinamik yang bermaksud ia dapat mengubah saiz dirinya untuk berkembang apabila diperlukan.
Saiz array tetap statik sepanjang program. Saiz ArrayList boleh berkembang secara dinamik bergantung pada beban dan keupayaan.
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 and Generics tidak ada tangan. Generik dibenarkan dalam ArrayList.
Array boleh menjadi pelbagai dimensi. ArrayList adalah dimensi tunggal.
Ini adalah komponen pengaturcaraan asli di mana unsur-unsur disimpan dalam lokasi memori berdekatan. Ia adalah kelas dari kerangka koleksi Java di mana objek tidak pernah disimpan di lokasi yang berdekatan.
Panjang pembolehubah digunakan untuk menentukan panjang Array. Saiz () kaedah digunakan untuk menentukan saiz ArrayList.
Mengambil kurang memori daripada ArrayList untuk menyimpan elemen atau objek yang ditentukan. Mengambil lebih banyak memori daripada Array untuk menyimpan objek.
Mengatur lebih banyak array lebih cepat daripada melewati ArrayList. Iterating over ArrayList sangat perlahan dari segi prestasi.

Ringkasan

Walaupun sesetengah mungkin berfikir bahawa melaksanakan tatasusunan dalam suatu program dapat memperoleh keputusan lebih cepat daripada melakukan hal yang sama dengan ArrayLists atas sebab mudah yang susunan adalah struktur data peringkat rendah, kinerja mungkin bervariasi berdasarkan operasi apa yang Anda lakukan, melakukan semula. Nah, panjang Array adalah tetap, manakala saiz ArrayList boleh ditingkatkan atau menurun secara dinamik, jadi ArrayList mempunyai sedikit kelebihan atas Array dari segi fungsi. Walau bagaimanapun, walaupun terdapat perbezaan, mereka berkongsi beberapa persamaan juga. 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.